Jenkins Pipeline動態(tài)使用Git分支名稱的技巧,可以觸類旁通的那種
前言
在上一篇 Jenkins 使用環(huán)境變量 中,幫助大家使用一條 Docker 命令就可以快速玩轉(zhuǎn) Jenkins,同時用最簡單的方式解釋了 Jenkins 中讓人混亂的環(huán)境變量,本文還是接著變量說點事情
一般成熟的項目流程都會通過 Jenkins Pipeline 來做 CI 部分,在默認 Jenkins 環(huán)境配置中,Jenkins Pipeline 分為兩種:
Pipeline (單分支 Pipeline) Multibranch Pipeline (多分支 Pipeline)
如下圖:

如果使用了多分支 Pipeline,就不會存在動態(tài)使用分支名稱的問題了。如果你想使用單分支 Pipeline,又想動態(tài)使用分支,那本文就派上用場了
Jenkins 中動態(tài)使用分支名稱
新建單分支 Pipeline后,可以在界面中看到 This project is parameterized , 勾選上,然后添加 String 類型的參數(shù),如下圖所示,String 類型的參數(shù)名稱為 BranchName, 默認值是 master 分支

向下滾動,來配置 Jenkins Pipeline,其中在指定 Jenkins Pipeline 分支的位置,就可以使用上面剛剛創(chuàng)建的變量 BranchName 了,如下圖所示,配置成
*/${BranchName}

注意:如果勾選 Lightweight checkout 可能會出現(xiàn)下面的 Error
stderr: fatal: Couldn't find remote ref refs/heads/${BranchName}
以這種方式,Jenkins Pipeline 會動態(tài)根據(jù)分支名稱來拉取代碼,同樣也可以在 Jenkinsfile 中動態(tài)使用剛剛創(chuàng)建好的 BranchName
pipeline {
...
parameters {
string(name: 'BranchName', defaultValue: 'master', description: null)
}
stages {
stage ('Test Branch Name') {
steps {
echo "${env.BranchName}"
}
}
}
}
當點擊左側(cè) Build with Parameters 后,我們就可以動態(tài)輸入分支名稱來運行 job 了

總結(jié)
在 Jenkins 中,其實這是一種很常見的動態(tài)使用參數(shù)的方式,config 的其他參數(shù)也可以動態(tài)引用變量,大大增加靈活性,如果你要維護 JenkinsPipelie 相關(guān)的內(nèi)容,你大概率會遇到這種需求,這個小技巧收入囊中吧
2021-03-26
2021-03-22
2021-03-22
