什么是流水线(Jenkins之流水线介绍)
什么是流水线
现实中的流水线流水线比较好理解,类比于现实生活中的生产流水线,每个流程只做一件事,通过传送带把这些流程连接在一起,一个流程完成后的结果交由后续流程继续操作 。
Jenkins的流水线简单认知【Jenkins之流水线介绍 什么是流水线】Jenkins的流水线也是这样工作的,最简单的认知是它可以把若干可通用的Shell脚本像胶水一样连接起来,虽然这个比喻比较形象,但这只是流水线的冰山一角 。
Jenkins流水线的两种形式在Jenkins升级2.x版本之前,流水线只有一种脚本式流水线(Script Pipeline),当升级2.x版本后,新增了声明式流水线(Declarative Pipeline)
什么是Jenkinsfile无论是哪种流水线,都需要为流水线定义流水线脚本,称之为Jenkinsfile,使用Groovy语法写成
脚本式流水线
在说明声明式流水线前,有必要了解一下脚本式流水线的基本概念,这样有利于我们知道声明式流水线的好处与脚本式流水线的限制
特征在脚本化流水线语法中, 一个或多个 node 块在整个流水线中执行核心工作 。
限制虽然这不是脚本化流水线语法的强制性要求, 但它限制了你的流水线的在node块内的只能做两件事:
- 需要通过在Jenkins队列中添加一个项来调度块中包含的步骤 。节点上的执行器一空闲, 该步骤就会运行 。
- 创建一个工作区(特定为特定流水间建立的目录),其中工作可以在从源代码控制检出的文件上完成 。
node { //需要有一个或多个node节点表示一系列操作stage('Build') { //每个stage表示一个步骤// Build步骤内容}stage('Test') {//Test步骤内容}stage('Deploy') {//Deploy步骤内容}}声明式流水线的基本语法类似于脚本式流水线,但是其功能更加强大
声明式流水线基础特征声明式流水线最外层Jenkinsfile脚本节点是pipeline
与脚本式流水线不同点声明式和脚本化的流水线从根本上是不同的 。声明式流水线的是 Jenkins 流水线更近的特性:
- 相比脚本化的流水线语法,它提供更丰富的语法特性,
- 是为了使编写和读取流水线代码更容易而设计的 。
pipeline { // pipeline是声明式流水线的一种特定语法,在块内定义了整个流水线的所有内容agent any //agent是声明式流水线的一种特定语法,它指示 Jenkins 为整个流水线分配一个执行器 (在节点上)和工作区,等效于脚本式流水线node块stages { // 所有流程(状态)的外层块,仅有一个stage('Build') { //每个stage为一流程,与脚本式基本一致,每个stage可以定义名称steps {//步骤块,内部包含具体操作sh 'make'// sh操作,其引号间的文字会当成shell直接执行}}stage('Test'){steps {sh 'make check'junit 'reports/**/*.xml'//junit使用匹配的定义测试xml进行单元测试}}stage('Deploy') {steps {sh 'make publish'}}}}使用jenkins的Blue Ocean插件运行构建:
Jenkinsfiles文件:
推荐阅读
- 阴阳师辉月之秋怎么玩-辉月之秋玩法攻略
- 剑与远征万灵之幽主神试炼36难度和35难度通关攻略,速来看看
- 前任和我分手之后迅速脱单,我还有机会挽回吗?
- 魔渊之刃负心刀BD搭配攻略,成为攻无不克的玩家
- 魔渊之刃火舞刀BD搭配攻略,新发布的哦
- 魔渊之刃虫王刀BD搭配攻略,新发布的哦
- 黑潮之上12-8平民打法攻略,收获很多的
- 幻书启世录真理之钥怎么获得,钥匙获取方法大全,出神入化
- 明日之后12月17日合区计划通知一览,让您百战百胜
- 幻书启世录开服怎么获得大量真理之钥,科普大全