Bra*_*ira 2 jenkins jenkins-pipeline
假设我有一个声明性管道。我只想在使用“从阶段重新启动”图标时运行阶段?
有没有办法做到这一点(方法,变量......)?我只想在使用“从舞台重新启动”时运行舞台
stage('Test') {
when {
expression {
// An expression to detect if Restart from this stage is used
}
}
steps {
sh 'echo 1'
}
}
Run Code Online (Sandbox Code Playgroud)
您可以定义一个全局变量,该变量将保存一个布尔值,表示管道是从头开始还是从特定阶段执行,在第一个阶段中更新它,并稍后在条件中使用它来确定when是否从阶段重新启动。
就像是:
RESTART = true
pipeline {
agent any
stages {
stage('Setup') {
steps {
script{
// signaling pipeline was executed from the beginning (first stage)
RESTART = false
}
// other setup steps
}
}
stage('Test') {
when {
expression { return RESTART }
}
steps {
sh 'echo 1'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
基于 @Pamela 使用条件的答案的另一个不错的选择是使用when 指令中的cause内置选项,从而避免使用和过滤所有原因的需要,并直接获取开箱即用的条件。
就像是:triggeredBygetBuildCauses()
stage('Test') {
when { triggeredBy 'RestartDeclarativePipelineCause' }
steps {
sh 'echo 1'
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1570 次 |
| 最近记录: |