From: Jonathan Rajotte Date: Mon, 27 Apr 2015 22:56:29 +0000 (-0400) Subject: generate poll trigger X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=c76d8fe269c8aae33bc26c641c8452a7f6995441;p=lttng-ci.git generate poll trigger --- diff --git a/dsl/kernel-lttng-modules.seed.groovy b/dsl/kernel-lttng-modules.seed.groovy index 749d131..608282f 100644 --- a/dsl/kernel-lttng-modules.seed.groovy +++ b/dsl/kernel-lttng-modules.seed.groovy @@ -273,6 +273,48 @@ jobs.each { job -> } } +if (fail){ + throw new AbortException("Some job failed") +} +""" + def dslTriggerModule = """\ +import hudson.model.* +import hudson.AbortException +import hudson.console.HyperlinkNote +import java.util.concurrent.CancellationException + + +def jobs = hudson.model.Hudson.instance.items +def fail = false +def jobStartWith = "${modulesPrefix + separator}%1$s" + +def anotherBuild +jobs.each { job -> + def jobName = job.getName() + if (jobName.startsWith(jobStartWith)) { + def lastBuild = job.getLastBuild() + if (lastBuild == null) { + try { + def future = job.scheduleBuild2(0, new Cause.UpstreamCause(build)) + println "\\tWaiting for the completion of " + HyperlinkNote.encodeTo('/' + job.url, job.fullDisplayName) + anotherBuild = future.get() + } catch (CancellationException x) { + throw new AbortException("\${job.fullDisplayName} aborted.") + } + println HyperlinkNote.encodeTo('/' + anotherBuild.url, anotherBuild.fullDisplayName) + " completed. Result was " + anotherBuild.result + + build.result = anotherBuild.result + if (anotherBuild.result != Result.SUCCESS && anotherBuild.result != Result.UNSTABLE) { + // We abort this build right here and now. + fail = true + println("Build Failed") + } + } else { + println("\\tAlready built") + } + } +} + if (fail){ throw new AbortException("Some job failed") } @@ -282,6 +324,14 @@ if (fail){ steps { systemGroovyCommand(dslTriggerKernel) } - } + } + + modulesBranches.each { branch -> + freeStyleJob("dsl-trigger-module-${branch}") { + steps { + systemGroovyCommand(snprintf(dslTriggerModule,[branch])) + } + } + } } }