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环境中被执行的节点,如Jenkins 的master节点或某个cluster节点。
在Declarative Pipeline模式的代码中,可能会在一个stages{…}中声明一窜嵌套的stages{…}, 并以顺序执行。需要指出的是,一个stage{…}必须有且只有一个steps{…}, 或者parallel{…} 或者stages{…}。
post用来定义将在Pipeline结束或stage结束时运行的操作。支持的post有: always,changed,failure,success,unstable,和aborted。这些块允许在Pipeline运行或stage结束时执行步骤,具体取决于Pipeline的状态。
还可以在parallel块中声明多个嵌套stage,这些stage将并行执行。需要注意的是一个stage有且只能有一个steps

本文介绍了Jenkins 2.x的核心特性——Pipeline as code,通过Pipeline可以使用Declarative或Scripted模式用代码定义复杂的工作流程。Declarative Pipeline强调结构化和易读性,适合简单流程;Scripted Pipeline更灵活,适用于复杂业务逻辑。Jenkins Pipeline支持在SCM中管理Jenkinsfile,提升协作效率和维护性。
最低0.47元/天 解锁文章
1587

被折叠的 条评论
为什么被折叠?



