日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

环境变量_Jenkins流水线环境变量权威指南

發布時間:2024/9/27 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 环境变量_Jenkins流水线环境变量权威指南 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

你是否遇到過因環境變量問題導致調試流水線很長時間?這篇文章一定能解決你的問題。本文章翻譯自博客。

歡迎來到“Jenkins CookBook”系列的第一篇博客文章。今天,我們專注于有效地使用Jenkins Pipeline環境變量。您將學習如何定義env變量,如何更新它們,以及如何在布爾表達式中正確使用它們。

主要內容

  • 列出環境變量
  • 讀取環境變量
  • 設置環境變量
  • 將布爾值存儲在環境變量中
  • sh在env環境變量中獲取輸出

列出環境變量

讓我們首先列出所有可用的環境變量。您可以通過兩種不同的方法進行操作。您可以${YOUR_JENKINS_HOST}/env-vars.html在Jenkins主服務器上打開頁面,以獲取HTML頁面上列出的所有環境變量的列表。

另外,您可以通過執行printenvshell命令列出所有環境變量。

pipeline { agent any stages { stage("Env Variables") { steps { sh "printenv" } } }}

注意:使用printenv | sort命令組合來獲取環境變量的排序列表可能很有用。


讀取環境變量

您可以在通過env對象的管道步驟中訪問環境變量,例如,env.BUILD_NUMBER將返回當前的內部版本號。您也可以使用簡寫版本BUILD_NUMBER,但是在此變體中,這可能會使某些用戶感到困惑-它缺少BUILD_NUMBER來自環境變量的上下文。

pipeline { agent any stages { stage("Env Variables") { steps { echo "The build number is ${env.BUILD_NUMBER}" echo "You can also use ${BUILD_NUMBER} -> ${BUILD_NUMBER}" sh 'echo "I can access $BUILD_NUMBER in shell command as well."' } } }}

設置環境變量

可以使用environment { }block 來聲明性地設置環境變量,必須使用env.VARIABLE_NAME或命令來設置環境變量withEnv(["VARIABLE_NAME=value"]) {}。

pipeline { agent any environment { FOO = "bar" } stages { stage("Env Variables") { environment { NAME = "Alan" } steps { echo "FOO = ${env.FOO}" echo "NAME = ${env.NAME}" script { env.TEST_VARIABLE = "some test value" } echo "TEST_VARIABLE = ${env.TEST_VARIABLE}" withEnv(["ANOTHER_ENV_VAR=here is some value"]) { echo "ANOTHER_ENV_VAR = ${env.ANOTHER_ENV_VAR}" } } } }}

覆蓋環境變量

Jenkins Pipeline支持覆蓋環境變量。您需要注意一些規則。

  • 該withEnv(["env=value]) { }塊可以覆蓋任何環境變量。
  • 使用environment {}塊設置的變量不能使用命令式env.VAR = "value"賦值覆蓋。
  • 命令式env.VAR = "value"分配只能覆蓋使用命令式創建的環境變量。

這是一個示例性的Jenkinsfile,顯示了所有三種不同的用例。

pipeline { agent any environment { FOO = "bar" NAME = "Joe" } stages { stage("Env Variables") { environment { NAME = "Alan" // overrides pipeline level NAME env variable BUILD_NUMBER = "2" // overrides the default BUILD_NUMBER } steps { echo "FOO = ${env.FOO}" // prints "FOO = bar" echo "NAME = ${env.NAME}" // prints "NAME = Alan" echo "BUILD_NUMBER = ${env.BUILD_NUMBER}" // prints "BUILD_NUMBER = 2" script { env.SOMETHING = "1" // creates env.SOMETHING variable } } } stage("Override Variables") { steps { script { env.FOO = "IT DOES NOT WORK!" // it can't override env.FOO declared at the pipeline (or stage) level env.SOMETHING = "2" // it can override env variable created imperatively } echo "FOO = ${env.FOO}" // prints "FOO = bar" echo "SOMETHING = ${env.SOMETHING}" // prints "SOMETHING = 2" withEnv(["FOO=foobar"]) { // it can override any env variable echo "FOO = ${env.FOO}" // prints "FOO = foobar" } withEnv(["BUILD_NUMBER=1"]) { echo "BUILD_NUMBER = ${env.BUILD_NUMBER}" // prints "BUILD_NUMBER = 1" } } } }}

將布爾值存儲在環境變量中

關于使用環境變量,存在一種普遍的誤解。存儲為環境變量的每個值都將轉換為String。當您存儲布爾false值時,它將轉換為"false"。如果要在布爾表達式中正確使用該值,則需要調用"false".toBoolean()method。

pipeline { agent any environment { IS_BOOLEAN = false } stages { stage("Env Variables") { steps { script { if (env.IS_BOOLEAN) { echo "You can see this message, because "false" String evaluates to Boolean.TRUE value" } if (env.IS_BOOLEAN.toBoolean() == false) { echo "You can see this message, because "false".toBoolean() returns Boolean.FALSE value" } } } } }}

使用SH捕獲變量

您還可以將shell命令的輸出捕獲為環境變量。請記住,您需要使用sh(script: 'cmd', returnStdout:true)格式來強制sh步驟返回輸出,以便可以捕獲它并將其存儲在變量中。

pipeline { agent any environment { LS = "${sh(script:'ls -lah', returnStdout: true)}" } stages { stage("Env Variables") { steps { echo "LS = ${env.LS}" } } }}

總結

以上是生活随笔為你收集整理的环境变量_Jenkins流水线环境变量权威指南的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。