首页 > 解决方案 > 如何避免重复适用于 Jenkinsfile 管道中多个步骤的条件?

问题描述

目前我有一个 Jenkinsfile,如下所示:

stage('A'){
  agent{docker{image A}}
  when{branch = 'master'}
  step{do blah} 
}    
stage('B'){
  when{branch = 'master'}
  agent{docker{image B}}
  step{do blah} 
}

担心的是这种情况在整个地方都是重复的,我想提取它 - 但如果有的话,无法识别正确的语法。

标签: jenkinsjenkins-pipelinepipeline

解决方案


您可以首先使用 env 变量(设置条件): https://jenkins.io/doc/book/pipeline/jenkinsfile/#setting-environment-variables-dynamically

然后你可以使用环境whenhttps ://jenkins.io/doc/book/pipeline/syntax/#built-in-conditions

当指定环境变量设置为给定值时执行该阶段,例如:

when { environment name: 'DEPLOY_TO', value: 'production' }

推荐阅读