簡體   English   中英

Jenkins以常規方法共享常見環境變量

[英]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.

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