1. 程式人生 > >jenkins學習筆記-3-使用環境變數

jenkins學習筆記-3-使用環境變數



使用環境變數

環境變數可以設定成全域性的,就像下面的例子。環境變數也可以設定在每個階段stage中。正如你料想,每個階段設定環境變數意味著這些環境變數只在定義了變數的階段中有效。

JenkinsfileDeclarative Pipeline

pipeline{

agentany

environment{

DISABLE_AUTH=’TRUE’

DB_ENGINE=’sqlite’

}

stages{

stage(‘Build’){

steps{

sh ‘printenv’

}

}

}

}

Jenkinsfile (Scripted Pipeline)

node {

withEnv(['DISABLE_AUTH=true',

'DB_ENGINE=sqlite']) {

stage('Build') {

sh 'printenv'

}

}

}

這種在Jenkinsfile裡面定義環境變數的方式對指令指令碼,例如Makefile,區別配置執行kenkins內部的構建和測試階段是非常有用的。

另外一個常見的使用環境變數的方式是設定或者覆蓋構建或者測試腳本里面的dummy 認證資訊。由於把認證資訊直接放進jenkinsfile裡面是一種並不高明的處理方式,kenkins 通道允許使用者快速且安全的訪問在Jenkinsfile

檔案裡提前定義好的認證資訊變數,而不需要知道認證資訊的值是什麼。

環境變數裡的認證資訊

如果你的jenkins環境包含認證資訊的配置,例如構建私鑰(build secrets)或者介面(api)訪問令牌(token)等可以簡單插入到環境變數中供通道使用。下面的程式碼片段用於機密文字型別憑證。例如:

environment {

AWS_ACCESS_KEY_ID=credentials('AWS_ACCESS_KEY_ID')

AWS_SECRET_ACCESS_KEY = credentials('AWS_SECRET_ACCESS_KEY')

}

正如第一個例子,這些變數將在全域性或每個階段都可用,這取決於環境指令位於

jenkinsfile中的位置。

environment {

SAUCE_ACCESS =credentials('sauce-lab-dev')

}

這實際上會設定三個環境變數

SAUCE_ACCESS包含<username>:<password>

SAUCE_ACCESS_USR包含使用者名稱

SAUCE_ACCESS_PSW包含密碼

認證資訊只在宣告式的同道中可用。對那些使用指令碼式的通道的人,檢視withCredentials步驟的文件。

到目前為止,我們關注的是建立一個配置和執行我們可能期望的方式的管道。在接下來的幾節中,我們將介紹連續交付的另一個關鍵方面:surfacing feedbackand information