Jenkins Pipeline 動態使用分支名,舉一反三的玩法值得擁有

前言

在上一篇 Jenkins 使用環境變量 中,幫助你們使用一條 Docker 命令就能夠快速玩轉 Jenkins,同時用最簡單的方式解釋了 Jenkins 中讓人混亂的環境變量,本文仍是接着變量說點事情html

通常成熟的項目流程都會經過 Jenkins Pipeline 來作 CI 部分,在默認 Jenkins 環境配置中,Jenkins Pipeline 分爲兩種:shell

  1. Pipeline (單分支 Pipeline)
  2. Multibranch Pipeline (多分支 Pipeline)

以下圖:ui

若是使用了多分支 Pipeline,就不會存在動態使用分支名稱的問題了。若是你想使用單分支 Pipeline,又想動態使用分支,那本文就派上用場了spa

Jenkins 中動態使用分支名稱

新建單分支 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 中動態使用剛剛建立好的 BranchNameip

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

相關文章
相關標籤/搜索