[英]Jenkins Share common environment variables in a groovy method
我正在構建一個聲明性的JenkinsFile,我有一些通用變量,希望在某些Jenkins項目和工作中共享。 因此,我創建了一個jenkins共享庫,但是由於某些原因,我無法讓我的Jenkins文件從通用Groovy中讀取通用環境變量。
pipeline {
environment {
commonEnv()
Email_Notification_Enabled="true"
Slack_Notification_Enabled="false"
}
}
在我的常規中,我有:
def call() {
a = "abc"
b = "abc"
}
拋出錯誤,即環境中不允許commonEnv()。 實現這種行為的可能方法是什么?
由於您需要在所有Jenkins項目和作業之間共享環境變量,因此應在Jenkins 實例級別而不是Jenkins 項目或工作級別設置它們。
因此,我將在Manage Jenkins > 配置系統 > 全局屬性 > 環境變量中執行此操作,而不是在Jenkinsfile中執行此操作(它將在Jenkins作業級別執行此操作):
然后可以從Jenkins全局變量 env在管道腳本中讀取環境變量:
echo "This is my Jenkins global environment variable ${env.MY_ENV_VAR_NAME}"
您可以編寫一個Groovy方法來設置公共環境變量。 請參閱此堆棧溢出問題以了解如何執行此操作。 在Jenkins管道共享庫中包含該方法。
現在,在每個作業的聲明性管道中調用此Groovy方法。 請記住,在聲明性管道中,您只能在script
步驟內部使用Groovy。 因此,您的管道如下所示:
pipeline {
stages {
stage("First stage") {
steps {
script {
// call to Groovy method that sets environment variables
}
// other steps
}
}
// other stages
}
}
希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.