簡短的回答是:你不能做到這一點與multibranch pipeline
。多分支管道僅設計(至少現在)以Pipeline script from SCM
風格執行特定管道,在項目的根部固定使用Jenkinsfile
。您可以使用Multi-Branch Project插件製作多分支自由式項目。首先,您需要像定義multibranch pipeline configuration
一樣定義您的multibranch freestyle configuration
。 選擇這個新的項目如下所示:
![New Freestyle multi-branch project](https://i.stack.imgur.com/K4HSy.png)
這種類型的配置將表現爲multibranch pipeline
類型完全一樣,也就是說,它會造成你與你配置的名稱和子項目的文件夾它自動檢測到的每個分支。
實現應該然後是小菜一碟:
- 指定您
SCM
庫在多分支配置
- 調用另一個構建作爲構建的一部分/後建立,你會在一個標準的做自由式項目,除了必須調用參數化作業(我們稱之爲
build-job
)併爲其提供存儲庫信息,即Git URL和當前分支(您可以使用預定義變量$GIT_URL
和$GIT_BRANCH
用於此目的)
- 在您的
build-job
中,只需定義從SCM簽出的內嵌管道或管道腳本,然後在此腳本中執行SCM簽出並繼續執行您需要構建的步驟。 build-job
管道內容示例:
。
node() {
stage 'Checkout'
checkout scm: [$class: 'GitSCM', branches: [[name: '*/${GIT_BRANCH}']], userRemoteConfigs: [[url: '${GIT_URL}']]]
stage 'Build'
// Build steps...
}
當然,如果你的不同multibranches項目需要有點區別對待,你也可以使用中間項目(假設build-project-A
,build-project-B
,...),將依次調用通用build-job
管道)
的一個,這種解決方案的主要缺點是,你將只負責對所有的建立一個作業,使其更難調試。如果成功/失敗,您仍然可以讓您的多分支項目變爲藍/紅色,但您必須返回build-job
才能找到構建的真正問題。
該自由式多分支選項現在似乎已正式廢棄。 Jenkins _does目前沒有提供一個選項來爲Jenkinsfile完全不存在的項目進行多分支構建。這真的很糟糕 – kert