Jenkins同参数Job无法进入排队的问题解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins同参数Job无法进入排队的问题解决相关的知识,希望对你有一定的参考价值。

参考技术A Same Parameters Jenkins Job
解决

Jenkins中,有这样的一个规则:
当有一个任务,正在排队(排队等待正在进行的任务);这时候,重新开始一个新的任务,而这个任务的参数,完全跟正在排队的任务的参数(Parameters)一样时,这个新的任务,将不会进入排队,也就是直接被忽略了。

既然知道了原理,解决方法很简单,只要添加一个参数项,填入与其它Job不一样的参数,任务的参数判断不一样,就不会被忽略掉了。

有两种建议的方法:

方法1:添加一个参数项叫DESCRIPTION,让触发任务的同学把“为什么要进行这个任务”写上去。 这样也方便了后边进行任务的追踪。

方法2:使用Jenkins插件 Random String Parameter ,然后添加参数类别选择Random String Parameter。这样,每次触发任务,都会生成一个随机字符串的参数,来避免相同参数的任务被过滤。

对于我,是两种方法都同时使用了

参考文章:

http://stackoverflow.com/questions/31741205/jenkins-same-parameters-on-multiple-jobs

Jenkins定时构建并传递构建参数

Jenkins定时构建不能传递参数,所以我们使用crontab+Jenkins远程构建的方式来实现

生成API Token

进入Jenkins的用户设置页面,生成一个API Token

调用Jenkins远程API

使用curl命令调用接口,并在Jenkins上确认参数传递成功

Simple example - sending "String Parameters":

curl JENKINS_URL/job/JOB_NAME/buildWithParameters \\
--user USER:TOKEN \\
--data id=123 --data verbosity=high

Another example - sending a "File Parameter":

curl JENKINS_URL/job/JOB_NAME/buildWithParameters \\
--user USER:PASSWORD \\
--form FILE_LOCATION_AS_SET_IN_JENKINS=@PATH_TO_FILE

配置crontab

比如周一至周五22:00构建

[root@jenkins jobs]# crontab -l
0 22 * * 1-5 curl http://172.19.201.222:8080/job/testjob/buildWithParameters --user wemux:115432405374b224f2338aa90db2c4f67e --data branch=1.0.1 --data version=1.0.1


以上是关于Jenkins同参数Job无法进入排队的问题解决的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins定时构建并传递构建参数

Jenkins Job构建

Jenkins+Gitlab自动打TAG

Jenkins启动另一个job并传递参数

命令行执行jenkins,构建job(可传递参数)

jenkins暂停恢复job