仅当给定的构建不是功能分支或拉取请求时,我才希望在Jenkins声明性管道中执行某个步骤,以便在所有其他分支和拉取请求上触发该阶段。
在我们的示例中,功能分支以前缀feature/
开头,根据this Jenkins wiki page,可以通过环境变量CHANGE_ID
确定拉取请求,该环境变量仅填充拉取请求
基于此,我想出了以下方法:
stage("My stage") {
when {
expression {
boolean isPullRequest = env.CHANGE_ID
boolean isFeatureBranch = env.BRANCH_NAME ==~ 'feature/.*'
return isPullRequest || !isFeatureBranch
}
}
steps {
// Do something
}
}
我想知道(a)这是否正确,(b)是否有更简洁的方法?