在Jenkins脚本化管道中跨阶段设置和引用变量

时间:2018-12-14 19:11:02

标签: jenkins environment-variables jenkins-pipeline

我试图通过在稍后的Checkout Stage中使用withEnv和引用来设置变量(GIT_ORG)来确定Github组织,但无法做到这一点,为此,我正在使用Jenkins脚本化管道,并带有“节点”和多个“阶段” (s)。克隆Git存储库时,当前作业失败,因为签出中没有有效的$ {GIT_ORG}。 我还想跨阶段使用withEnv变量,不确定如何做到这一点。任何帮助表示赞赏。谢谢!

  stage( 'Checkout - TIBCO BW') {
    sh '/app/aims/scripts/folder.sh'
      sh 'echo "Checkout TIBCO BW CODE"'
   if (env.MDM_BW == 'true') {
         withEnv(["GIT_ORG=Enterprise-MDM"]){
         echo env.GIT_ORG
        }
    } else {
        withEnv(["GIT_ORG=Enterprise-Integrations"]){
        echo $GIT_ORG
        }
    }                    
    checkout([$class: 'GitSCM', 
        branches: [[name: '$GIT_CODE_TAG']], 
        doGenerateSubmoduleConfigurations: false, 
        extensions: [[$class: 'RelativeTargetDirectory', 
        relativeTargetDir: '${TIBCO_EARNAME}/code']], 
        submoduleCfg: [], 
        userRemoteConfigs: [[credentialsId: 'GIT_USER', url: 'git@github.company.com:${GIT_ORG}/${TIBCO_EARNAME}.git']]])
        //workspaceUpdater: [$class: 'UpdateUpdater']])
  }

1 个答案:

答案 0 :(得分:0)

尝试以下脚本:

if (env.MDM_BW == 'true') {
        environment{
            GIT_ORG=Enterprise-MDM
           }
    } else {
        environment{
            GIT_ORG=Enterprise-Integrations
           }
} 
相关问题