介绍
Jenkins 2.0的到来,pipline进入了视野,jenkins2.0的核心特性。也是最适合持续交付的feature。
简单的来说,就是把Jenkins1.0版本中,Project中的相关配置信息,如SVN/Git的配置,Parameter的配置等都变成Code,即Pipeline as Code。
随着pipeline交付流水线在团队中的推广,使用pipeline脚本的job也迅速增加。
优势
1. 通过写代码的形式配置Project,且Jenkins中内置了常用的steps。
2. 实现了构建步骤代码化、构建过程视图化。
基础
Pipeline最基本的部分是“step”。基本上,step告诉Jenkins 要做什么,并且作为Declarative Pipeline和Scripted Pipeline语法的基本构建块。
Pipeline支持两种语法:Declarative Pipeline(在Pipeline 2.5中引入,即声明式pipeline)和Scripted Pipeline(即脚本式pipeline),两者都支持建立连续输送的Pipeline。
选择Declarative Pipeline还是Scripted Pipeline
最开始的Pipeline plugin,支持的只有一种脚本类型,就是Scripted Pipeline;
Declarative Pipeline为Pipeline plugin在2.5版本之后新增的一种脚本类型,与原先的Scripted Pipeline一样,都可以用来编写脚本。
本文主要介绍Declarative Pipeline(声明式pipeline),虽然笔者推荐采用Scirpted Pipeline,但也依旧推荐新手学习、了解、掌握Declarative Pipeline,以便初步理解和掌握Pipeline。
Declarative Pipeline是Jenkins Pipeline 的一个相对较新的补充, 它在Pipeline子系统之上提出了一种更为简化和有意义的语法。
所有有效的Declarative Pipeline必须包含在一个pipeline块内,例如:
pipeline { /* insert Declarative Pipeline here */ }
声明式Pipeline标准模板如下
区别
在声明式流水线中有效的基本语句和表达式遵循与 Groovy的语法同样的规则, 有以下例外:
- 流水线顶层必须是一个 block, 特别地:
pipeline { }
- 没有分号作为语句分隔符,,每条语句都必须在自己的行上。
- 块只能由 节段, 指令, 步骤, 或赋值语句组成。*属性引用语句被视为无参方法调用。例如, input被视为 input()