diff options
-rw-r--r-- | post-build-lava.groovy | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/post-build-lava.groovy b/post-build-lava.groovy index 0da6672..8e7d125 100644 --- a/post-build-lava.groovy +++ b/post-build-lava.groovy @@ -1,8 +1,11 @@ +import hudson.model.* + // Add a LAVA job link to the description def matcher = manager.getLogMatcher(".*LAVA Job Id.*") -if(matcher?.matches()) { +if (matcher?.matches()) { def lavaJobId = matcher.group(0).split(",")[0].substring(13) - def lavaJobUrl = "http://validation.linaro.org/scheduler/job/" + lavaJobId + def lavaServer = manager.build.buildVariables.get("LAVA_SERVER").split("/")[0] + def lavaJobUrl = "http://${lavaServer}/scheduler/job/${lavaJobId}" def lavaDescription = " LAVA Job Id: <a href='${lavaJobUrl}'>${lavaJobId}</a>" def cause = manager.build.getAction(hudson.model.CauseAction.class).getCauses() @@ -24,11 +27,29 @@ if(matcher?.matches()) { def jobs = hudson.model.Hudson.instance.getItem(jobName).getAllJobs() for (job in jobs) { - if(job.name == jobConfiguration) { + if (job.name == jobConfiguration) { if (job.getLastBuild().getDescription() != null) { lavaDescription += "<br>" + job.getLastBuild().getDescription() } job.getLastBuild().setDescription(lavaDescription) } } + + // Add parameters + def action = manager.build.getAction(hudson.model.ParametersAction.class) + def parameters = [ + new StringParameterValue("LAVA_JOB_ID", "${lavaJobId}"), + new StringParameterValue("BUILD_JOB", "${jobUrl}") + ] + updatedAction = action.createUpdated(parameters) + manager.build.replaceAction(updatedAction) + + // Update the pool of jobs to monitor + job = hudson.model.Hudson.instance.getItem("check-lava-status") + property = job.getProperty(hudson.model.ParametersDefinitionProperty.class) + parameter = property.getParameterDefinition("LAVA_JOB_ID_POOL") + lavaJobIdPool = parameter.getDefaultValue() + lavaJobIdPool += " ${lavaJobId}" + parameter.setDefaultValue(lavaJobIdPool) + job.save() } |