Jenkins pipeline
最近由于项目需要,接触到了Jenkins 2.0版本,其中最重要的特性就是提供了对pipeline的支持。
简单的来说,就是把Jenkins1.0版本中,Project中的相关配置信息,如SVN/Git的配置,Parameter的配置等都变成Code,即Pipeline as Code。
这样的优势为可以通过写代码的形式配置Project,且Jenkins中内置了常用的steps。实现了构建步骤代码化、构建过程视图化。
声明性管道与脚本管道
声明式管道 和 脚本化管道 的主要区别在于它们的语法和灵活性
声明性管道是一个相对较新的特性,它提出了pipeline as code的概念,它使管道代码更易于读写。管道代码是在 Jenkinsfile 文件中编写的,可以将其存放到源代码管理系统(如Git)。
脚本化管道是一个传统方式。在这个管道中,Jenkinsfile 被写在 Jenkins UI实例上。
虽然这两条管道都是基于Groovy DSL的,但是脚本化的流水线使用更严格的基于Groovy的语法,因为它是Groovy基金会上构建的第一条管道。由于这个Groovy脚本并不是所有用户都想要的,所以引入声明性管道是为了提供一种更简单、更具选择性的Groovy语法。
声明性管道在标记为“pipeline”的块中定义,而脚本化管道在“node”中定义。
选择Declarative Pipeline还是Scripted Pipeline
最开始的Pipeline plugin,支持的只有一种脚本类型ÿ