Jenkins 使用環(huán)境變量

2018-08-22 10:27 更新

Jenkins 環(huán)境變量可以全局設置,如下面的示例或每個階段。您可能會期望,每個階段設置環(huán)境變量意味著它們將僅適用于定義它們的階段。

Jenkinsfile (Declarative Pipeline)
pipeline {
    agent any

    environment {
        DISABLE_AUTH = 'true'
        DB_ENGINE    = 'sqlite'
    }

    stages {
        stage('Build') {
            steps {
                sh 'printenv'
            }
        }
    }
}

Toggle Scripted Pipeline (Advanced)

Jenkinsfile (Scripted Pipeline)
node {
    withEnv(['DISABLE_AUTH=true',
             'DB_ENGINE=sqlite']) {
        stage('Build') {
            sh 'printenv'
        }
    }
}

這種從內(nèi)部定義環(huán)境變量的方法Jenkinsfile 對于指示腳本(例如a)可以非常有用Makefile,以不同的方式配置構(gòu)建或測試,以在Jenkins內(nèi)部運行它們。

環(huán)境變量的另一個常見用途是在構(gòu)建或測試腳本中設置或覆蓋“虛擬”憑據(jù)。因為(顯而易見)將憑據(jù)直接放入一個不好的主意Jenkinsfile,Jenkins Pipeline允許用戶快速而安全地訪問預定義的憑據(jù),而Jenkinsfile無需知道其價值。

環(huán)境證書

如果您的Jenkins環(huán)境配置了憑據(jù),例如構(gòu)建秘密或API令??牌,那么可以將它們輕松插入環(huán)境變量中,以便在Pipeline中使用。下面的代碼片段用于“秘密文本”類型的憑據(jù)。

environment {
    AWS_ACCESS_KEY_ID     = credentials('AWS_ACCESS_KEY_ID')
    AWS_SECRET_ACCESS_KEY = credentials('AWS_SECRET_ACCESS_KEY')
}

正如第一個例子,這些變量將在全局或每個階段可用,具體取決于environment指令 在哪里Jenkinsfile。

第二種最常見的憑證類型是“用戶名和密碼”,仍然可以在environment指令中使用,但會導致稍微不同的變量被設置。

environment {
   SAUCE_ACCESS = credentials('sauce-lab-dev')
}

這將實際設置3個環(huán)境變量:

SAUCE_ACCESS 含 <username>:<password>
SAUCE_ACCESS_USR 包含用戶名
SAUCE_ACCESS_PSW 包含密碼
credentials僅適用于聲明性Pipeline。對于使用腳本Pipeline的用戶,請參閱該withCredentials步驟的文檔。

到目前為止,我們關心的是創(chuàng)建一個配置并執(zhí)行我們期望的方式的Pipeline。在接下來的兩個部分中,我們將介紹連續(xù)交付的另一個重要方面:表面反饋和信息。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號