一千萬個為什麽

搜索

Jenkins管道 - 僅在分支匹配時輸入



我想要求輸入,但前提是我們在某個分支上。但輸入是在何時運行。這可以用聲明性語法完成嗎?

例如,即使分支不是主分支,這也總是會提示

stage('only on master') {
   when {
      branch 'master'
   }
   input { ... }
}

轉載註明原文: Jenkins管道 - 僅在分支匹配時輸入

一共有 1 個回答:

我看到兩種方法:

將當前分支名稱保存在變量上並在if語句中進行檢查

CURRENT_BRANCH = '...'//some value 要麽parameter

stage('only on master') {
  if (CURRENT_BRANCH == 'master') {
  input {
    ...
  }
}

// be sure to check if input was set 要麽define a default value

要麽

運行shell腳本以了解當前文件夾是否是master上的git repo

The following command check if current folder is a git repository printing "true" ( 要麽returning a err要麽if does not have repo)

git rev-parse --is-inside-work-tree

接下來,打印當前分支名稱

git branch | grep \* | cut -d ' ' -f2

使用它們來創建設置環境變量的腳本。 檢查管道上的值,以顯示輸入

stage('only on master') {

 //Set true on IS_ON_MASTER if current branch is master, 
 //otherwise set false

  sh ./check-branch-master.sh 

  if (env.IS_ON_MASTER) {
  input {
    ...
  }
}