2017-01-26 46 views
1

我有一堆由gitlab上的提交觸發的作業。問題是,這些作業中的分支說明符是origin/${gitlabSourceBranch}。無論何時我想手動重新運行作業,我都必須進入作業配置,將其更改爲origin/master,然後運行。我想避免這種情況,並將所有這些作業完整複製並放入不同的選項卡,其名稱末尾爲-manual如何複製並重命名所有Jenkins作業?

我的工作是這樣的:

[Unit-test-tab] 
ModuleName1-unit-test-python 
ModuleName2-unit-test-python 
ModuleName3-unit-test-java 
etc... 

我要讓所有這些工作的副本,並把他們在詹金斯[Unit-test-tab-manual]下在末尾添加了-manual-相同的名稱。所以基本上我想做一個標籤看起來像這樣:

[Unit-test-tab-manual] 
ModuleName1-unit-test-python-manual 
ModuleName2-unit-test-python-manual 
ModuleName3-unit-test-java-manual 
etc... (all with branch specifier changed to origin/master instead of origin/${gitlabSourceBranch)). 

有沒有任何快速解決方案呢?我知道我可以手動做,但這很耗時,而且我有很多這些工作。提前致謝! :)

回答

2

您可以使用Jenkins CLI來實現你想要的。它確實提供了一個命令來創建通過config.xml作爲輸入的作業。要更改分支,可以使用sed將「origin/$ {gitlabSourceBranch}」更改爲「origin/master」。

你可以做到這一切與詹金斯作業:

  1. 取任務與get-job CLI命令config.xml文件:java -jar jenkins-cli.jar -s https://jenkins.example.com get-job JOBNAME > config.xml
  2. 執行的sed上的config.xml文件工作; sed的應該是這樣的:java -jar jenkins-cli.jar -s https://jenkins.example.com create-job JOBNAME-manual < config.xml
sed -i 's/origin\/${gitlabSourceBranch}/origin\/master/g' config.xml
  • 使用create-工作CLI命令創建新的工作有不同的名稱