Jenkins Pipeline 支持两种语法
Jenkins Pipeline 支持两种语法,一种 Declarative Pipeline(声明式),一种 ScriptedPipeline(脚本式)。
声明式的 Pipeline 限制用户使用严格的预选定义的结构,是一种声明
式的编程模型,对比脚本式的 Pipeline 学习起来更加简单;
脚本式的 Pipeline 限制比较少,结构和语法的限制由 Groovy 本身决定,是一种命令式的编程模型。
所以我们学习使用声明式的方式编写 jenkinsfile。
一般来说 jenkinsfile 会被放在代码库的根目录下。
当然也可以在 Web 页面定义。
下面是两种不同方式的 jenkinsfile 示例
Jenkinsfile (声明式)
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building..'
}
}
stage('Test') {
steps {
echo 'Testing..'
}
}
stage('Deploy') {
steps {
echo 'Deploying....'
}
}
}
}
前面我们说过,声明式的Pipeline有严格的预定义格式结构,有固定的格式,外层必须是pipeline{},
紧接着是 agent 就是节点node ,agent也是固定的,pipeline紧跟着进来 一定是agent 参考上面的格式 后面的any是任何节点还是其中一个节点,指定某一个节点是自己指定,通过标签自己来指定节点
指示 Jenkins 分配一个执行器和工作空间来执行下面的 Pipeline,
stages和steps是申明式Jenkinsfile必须的,stages是一个个阶段,所有的stage必须要定义在stages里,
stages(‘’) 括号里面是名称,这个阶段是什么名称,stages这个名称不能重复,同一个stage名称只能有一个
每一个stage下的 step 要定义在一个 steps 里,stages里面包含了step,具体的执行步骤都写在step里面 ,一行一个,可以写多行
==Jenkinsfile(脚本式)==
<pre>
node {
stage('Build') {
//
}
stage('Test') {
//
}
stage('Deploy') {
//
}
}
在脚本式 jenkinsfile 里,你可以定义一个 node 或者多个 node 块,然后在 node 块里
定义你的 stage,在 stage 里定义你的 step 即可