什么是流水线
jenkins 有 2 种流水线分为声明式流水线
与脚本化流水线
,脚本化流水线是 jenkins 旧版本使用的流水线脚本,新版本 Jenkins 推荐使用声明式流水线。文档只介绍声明流水线。
声明式流水线
在声明式流水线语法中,流水线过程定义在 Pipeline{}
中,Pipeline 块
定义了整个流水线中完成的所有工作,比如
参数说明:
-
agent any:在任何可用的代理上执行流水线或它的任何阶段,也就是执行流水线过程的位置,也可以指定到具体的节点
-
stage:定义流水线的执行过程(相当于一个阶段),比如下文所示的 Build、Test、Deploy, 但是这个名字是根据实际情况进行定义的,并非固定的名字
-
steps:执行某阶段具体的步骤。
脚本化流水线
在脚本化流水线语法中,会有一个或多个 Node(节点)块在整个流水线中执行核心工作
参数说明:
-
node:在任何可用的代理上执行流水线或它的任何阶段,也可以指定到具体的节点
-
stage:和声明式的含义一致,定义流水线的阶段。Stage 块在脚本化流水线语法中是可选的,然而在脚本化流水线中实现 stage 块,可以清楚地在 Jenkins UI 界面中显示每个 stage 的任务子集。
声明式流水线
声明式流水线必须包含在一个 Pipeline 块中,比如是一个 Pipeline 块的格式
在声明式流水线中有效的基本语句和表达式遵循与 Groovy 的语法同样的规则,但有以下例外
- 流水线顶层必须是一个 block,即 pipeline{}
- 分隔符可以不需要分号,但是每条语句都必须在自己的行上
- 块只能由 Sections、Directives、Steps 或 assignment statements 组成
- 属性引用语句被当做是无参数的方法调用,比如 input 会被当做 input()。