我使用声明性语法来开发(多分支)管道脚本,并且我正在寻找一种方法来根据某些条件跳过整个管道,而不必when在每个阶段都修改。
当前用例:我正在设置一个cron在晚上触发构建,但我只想说分支release/v1并develop在晚上通过管道,而不是其他十几个分支。
triggers {
cron('H 21 * * 1-5')
}
// SKIP PIPELINE if triggered by timer AND branch not 'release/v1' OR 'develop'
stages {
stage('build') {
when { ... }
}
stage('UT') {
when { ... }
}
etc...
}
Run Code Online (Sandbox Code Playgroud)
任何提示将不胜感激。
如果您拥有管道定义插件 1.3 或更高版本 ( changelog ) ,则可以嵌套阶段。
使用它,您可以将整个工作嵌套在父阶段中,并在父阶段使用 when 指令。如果跳过父阶段,将跳过所有子阶段。下面是一个例子:
pipeline {
agent any
stages {
stage('Parent') {
when {
//...
}
stages {
stage('build') {
steps {
//..
}
}
stage('UT') {
steps {
//...
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1745 次 |
| 最近记录: |