我在gitlab上提交了一堆工作。问题是,这些作业中的分支说明符是origin/${gitlabSourceBranch}
。每当我想手动重新运行作业时,我必须进入作业配置,将其更改为origin/master
,然后再运行。我想避免这种情况,并制作所有这些工作的完整副本,并将它们放在不同的标签中,-manual
在其名称的末尾。
我的工作看起来像这样:
[Unit-test-tab]
ModuleName1-unit-test-python
ModuleName2-unit-test-python
ModuleName3-unit-test-java
etc...
我想复制所有这些工作,并将它们放在[Unit-test-tab-manual]
下的Jenkins中,并在最后添加-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)).
这有什么快速解决方案吗?我知道我可以手动完成,但这很耗时,而且我有很多工作。提前致谢! :)
答案 0 :(得分:2)
您可以使用Jenkins CLI来实现您的目标。它确实提供了一个命令来创建作为输入传递config.xml的作业。要更改分支,可以使用sed
将“origin / $ {gitlabSourceBranch}”更改为“origin / master”。
你可以用以下的Jenkins Job完成所有这些:
get-job
CLI命令获取作业的config.xml文件:java -jar jenkins-cli.jar -s https://jenkins.example.com get-job JOBNAME > config.xml
sed -i 's/origin\/${gitlabSourceBranch}/origin\/master/g' config.xml
java -jar jenkins-cli.jar -s https://jenkins.example.com create-job JOBNAME-manual < config.xml