在上一篇 Jenkins 使用環境變量 中,幫助你們使用一條 Docker 命令就能夠快速玩轉 Jenkins,同時用最簡單的方式解釋了 Jenkins 中讓人混亂的環境變量,本文仍是接着變量說點事情html
通常成熟的項目流程都會經過 Jenkins Pipeline 來作 CI 部分,在默認 Jenkins 環境配置中,Jenkins Pipeline 分爲兩種:shell
以下圖:ui
若是使用了多分支 Pipeline
,就不會存在動態使用分支名稱的問題了。若是你想使用單分支 Pipeline,又想動態使用分支,那本文就派上用場了spa
新建單分支 Pipeline後,能夠在界面中看到 This project is parameterized
, 勾選上,而後添加 String 類型的參數,以下圖所示,String 類型的參數名稱爲 BranchName
, 默認值是 master
分支code
向下滾動,來配置 Jenkins Pipeline,其中在指定 Jenkins Pipeline 分支的位置,就能夠使用上面剛剛建立的變量 BranchName
了,以下圖所示,配置成htm
*/${BranchName}
注意:若是勾選 Lightweight checkout 可能會出現下面的 Error
stderr: fatal: Couldn't find remote ref refs/heads/${BranchName}
以這種方式,Jenkins Pipeline 會動態根據分支名稱來拉取代碼,一樣也能夠在 Jenkinsfile 中動態使用剛剛建立好的 BranchName
ip
pipeline { ... parameters { string(name: 'BranchName', defaultValue: 'master', description: null) } stages { stage ('Test Branch Name') { steps { echo "${env.BranchName}" } } } }
當點擊左側 Build with Parameters 後,咱們就能夠動態輸入分支名稱來運行 job 了rem
在 Jenkins 中,其實這是一種很常見的動態使用參數的方式,config 的其餘參數也能夠動態引用變量,大大增長靈活性,若是你要維護 JenkinsPipelie 相關的內容,你大機率會遇到這種需求,這個小技巧收入囊中吧get
日拱一兵 | 原創string