Jenkins 2.x的核心能力是Pipeline as code。在Jenkins 1.x中,我们通过简单便捷的配置,可以快速完成基本CI、CD的Job创建和管理,但对于复杂的流程,Jenkins 1.x则无从下手。在软件的发布过程中,通常会有一整套复杂的流程,来支持从代码提交到最终的软件交付。通过Jenkins pipeline,我们可以用代码的方式,定义我们的工作流,从而在代码中编写工程的CI、CD业务逻辑。同时,Pipeline支持在不同节点运行不同的步骤,使得整个DevOps流程更加灵活。
Jenkins pipeline支持两种模式,一种是Declarative Pipeline,另一种是Scripted Pipeline。两种模式都遵循的是groovy语法,但在编写上会有差别。
Declarative Pipeline
Declarative Pipeline必须被包含在pipeline语句块中:
pipeline { /* insert Declarative Pipeline here */ }
一个完整的Hello World!示例如下:
pipeline { agent any stages { stage('Example') { steps { echo 'Hello World' } } } post { always { echo 'I will always say Hello again!' } } }
agent指定整个Pipeline或特定stage将在Jenkins