簡體   English   中英

如何將變量從管道傳遞到 Jenkins 中的作業?

[英]How to pass variable from pipeline to job in Jenkins?

我需要在管道中創建一個唯一標識符,然后從此管道啟動的所有作業都應該可以訪問這個唯一標識符。
我不想參數化這些工作。

我認為在管道級別上定義的環境變量可以從作業中訪問,但事實並非如此。

pipeline {
   agent any
   environment {
       TEST_VAR = 'TEST_VAR'
   }
   stages {
      stage('Stage1') {
         steps {
            build (job: 'job1')
         }
      }
   }
}

您實際上不需要參數化下游管道,但仍然可以將變量作為參數從上游傳遞並在下游訪問它。

上游管道

pipeline {
    agent any
    environment {
       TEST_VAR = 'hello_world'
    }
    stages {
        stage('Build-downstream-job') {
            steps {
                build job: 'downstream-job', parameters: [string(name: 'TEST_VAR', value: env.TEST_VAR)], wait: false
            }
        }
    }
}

下游管道

pipeline {
    agent any
    stages {
        stage('Get-test-var') {
            steps {
                println(params.TEST_VAR)
            }
        }
    }
}

下游管道控制台output

[Pipeline] stage
[Pipeline] { (Get-test-var)
[Pipeline] echo
hello_world
[Pipeline] }
[Pipeline] // stage

您應該嘗試在 TEST_VAR 之前添加一個“$”:

environment {
     TEST_VAR = '$TEST_VAR'
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM