Jenkins parameterized job that only queues one build

后端 未结 7 875
暖寄归人
暖寄归人 2020-12-30 03:25

Imagine a Jenkins job A which takes 1 minute to run, and job B which takes 5 minutes.

If we configure job A to trigger job B, while job B is running job A may run 5

7条回答
  •  渐次进展
    2020-12-30 04:10

    Add a "System Groovy Script" pre-build step to job B that checks for (newer) queued jobs of the same name, and bails out if found:

    def name = build.properties.environment.JOB_NAME
    def queue = jenkins.model.Jenkins.getInstance().getQueue().getItems()
    if (queue.any{ it.task.getName() == name }) {
      println "Newer " + name + " job(s) in queue, aborting"
      build.doStop()
    } else {
      println "No newer " + name + " job(s) in queue, proceeding"
    }
    

提交回复
热议问题