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

2018-08-22 10:27 更新

Jenkins 環(huán)境變量可以全局設(shè)置,如下面的示例或每個(gè)階段。您可能會(huì)期望,每個(gè)階段設(shè)置環(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 對(duì)于指示腳本(例如a)可以非常有用Makefile,以不同的方式配置構(gòu)建或測(cè)試,以在Jenkins內(nèi)部運(yùn)行它們。

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

環(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')
}

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

第二種最常見(jiàn)的憑證類型是“用戶名和密碼”,仍然可以在environment指令中使用,但會(huì)導(dǎo)致稍微不同的變量被設(shè)置。

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

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

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

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


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)