我有 2 个管道,一个用于审查,一个用于部署,所以当管道以审查结束时,我想跳过 jenkins 文件执行,但是当以部署结束时,它应该执行阶段或我尝试使用的 jenkins 文件,如果但这是声明性管道,所以当应该使用时,如果遇到部署管道结束,我想避免使用 when 条件执行阶段
#!/usr/bin/env groovy
final boolean Deploy = (env.JOB_NAME as String).endsWith("-deploy")
pipeline {
agent any
parameters {
choice(
choices: ['greeting' , 'silence'],
description: '',
name: 'REQUESTED_ACTION')
}
stages {
//how to ouse when here to use deploy vairable to avoide execution of stage below
stage ('Speak') {
steps {
echo "Hello, bitwiseman!"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
Dib*_*tya 12
@StephenKing 的答案的另一种选择,这也是正确的,您可以when在评估布尔值时重写块,如下所示:
stages {
stage('Deploy') {
when {
expression {
return Deploy
}
}
steps {
echo "Hello, bitwiseman!" // Step executes only when Deploy is true
}
}
}
Run Code Online (Sandbox Code Playgroud)
这将仅在变量Deploy评估为 true时执行阶段 Deploy ,否则将跳过阶段。
Ste*_*ing 11
您可以使用 跳过声明性管道中的阶段when,因此以下应该有效。
stages {
stage('Deploy') {
when { equals expected: true, actual: Deploy }
steps {
// ...
}
}
}
Run Code Online (Sandbox Code Playgroud)
我也很难找到它,但最后:
stage('Speak') {
when {
expression { params.REQUESTED_ACTION != 'SILENCE' }
}
steps {
echo "Hello, bitwiseman!"
}
}
Run Code Online (Sandbox Code Playgroud)
Jenkins 文档与示例:https : //jenkins.io/doc/book/pipeline/syntax/#when-example
| 归档时间: |
|
| 查看次数: |
35794 次 |
| 最近记录: |