import hudson.model.* // Add a LAVA job link to the description def matcher = manager.getLogMatcher(".*LAVA Job Id.*") if (matcher?.matches()) { def lavaJobId = matcher.group(0).split(",")[0].substring(13) def lavaServer = "validation.linaro.org" def serverMatcher = manager.getLogMatcher(".*\"server\":.*") if (serverMatcher.matches()) { lavaServer = serverMatcher.group(0).split("://")[1].split("/")[0] } def lavaJobUrl = "http://${lavaServer}/scheduler/job/${lavaJobId}" def lavaDescription = " LAVA Job Id: ${lavaJobId}" def cause = manager.build.getAction(hudson.model.CauseAction.class).getCauses() def upstreamBuild = cause[0].upstreamBuild def upstreamProject = cause[0].upstreamProject def jobName = upstreamProject def jobConfiguration = upstreamProject def jobUrl = manager.hudson.getRootUrl() + "job/${upstreamProject}/${upstreamBuild}" def jobDescription = "
 Build ${upstreamProject} #${upstreamBuild}" manager.build.setDescription(lavaDescription + jobDescription) // Multi-configuration project if (upstreamProject.contains("/")) { jobName = upstreamProject.split("/")[0] jobConfiguration = upstreamProject.split("/")[1] } def jobs = hudson.model.Hudson.instance.getItem(jobName).getAllJobs() for (job in jobs) { if (job.name == jobConfiguration) { if (job.getLastBuild().getDescription() != null) { lavaDescription += "
" + job.getLastBuild().getDescription() } job.getLastBuild().setDescription(lavaDescription) } } // Add parameters def action = manager.build.getAction(hudson.model.ParametersAction.class) def parameters = [ new StringParameterValue("LAVA_SERVER", "${lavaServer}/RPC2/"), 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() }