jenkins學習筆記-3-使用環境變數
使用環境變數
環境變數可以設定成全域性的,就像下面的例子。環境變數也可以設定在每個階段stage中。正如你料想,每個階段設定環境變數意味著這些環境變數只在定義了變數的階段中有效。
Jenkinsfile(Declarative 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')
}
正如第一個例子,這些變數將在全域性或每個階段都可用,這取決於環境指令位於
environment {
SAUCE_ACCESS =credentials('sauce-lab-dev')
}
這實際上會設定三個環境變數
。SAUCE_ACCESS
包含<username>:<password>
。SAUCE_ACCESS_USR
包含使用者名稱
。SAUCE_ACCESS_PSW
包含密碼
認證資訊只在宣告式的同道中可用。
對那些使用指令碼式的通道的人,檢視withCredentials
步驟的文件。
到目前為止,我們關注的是建立一個配置和執行我們可能期望的方式的管道。在接下來的幾節中,我們將介紹連續交付的另一個關鍵方面:surfacing feedbackand information。