如何解决Jenkins-仅在另一个作业失败n次后才运行作业
我仅在上次成功后另一个作业(jobA)失败了n次,才希望触发/启动一个作业(jobB)。 我看到了这个parameterized trigger plugin-但是对于触发器,您只能说“失败”,但无法定义计数器失败后是否应该触发。
谢谢 克里斯
解决方法
在这里,我的常规脚本解决了该问题。使用g roovy-postbuild plugin在jobA上执行脚本。感谢Ian W的输入。
import hudson.model.*
import jenkins.model.Jenkins
job_name = "jobA"
job_name_to_run = "jobB"
triggerThreshold = 2
last_succ_num = 0
last_job_num = 0
def currentBuild = Thread.currentThread().executable
def job = Hudson.instance.getJob(job_name)
def job_data = Jenkins.instance.getItemByFullName(job.fullName)
println 'Job: ' + job_data.fullName
if (job_data.getLastBuild()) {
last_job_num = job_data.getLastBuild().getNumber()
}
println 'last_job_num: ' + last_job_num
if (job_data.getLastSuccessfulBuild()) {
last_succ_num = job_data.getLastSuccessfulBuild().getNumber()
}
println 'last_succ_num: ' + last_succ_num
doRunJob =(last_job_num - last_succ_num >= triggerThreshold)
println 'do run job? ' + doRunJob
if (doRunJob){
def jobToRun = Hudson.instance.getJob(job_name_to_run)
def cause = new Cause.UpstreamCause(currentBuild)
def causeAction = new hudson.model.CauseAction(cause)
Hudson.instance.queue.schedule(jobToRun,causeAction)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。