View Source

{excerpt}This scripts displays a list of all failed jobs. Addon: restart them.{excerpt}
{code}// Get the list of failed jobs
activeJobs = hudson.model.Hudson.instance.items.findAll{job -> job.isBuildable()}
failedRuns = activeJobs.findAll{job -> job.lastBuild != null && job.lastBuild.result == hudson.model.Result.FAILURE}
// Do something with them - e.g. listing them
failedRuns.each{run -> println(run.name)}
{code}

Sample ouput produced:
{code}ProjectA
ProjectB
ProjectC
Result: [hudson.model.FreeStyleProject@1f39c59[ProjectA], hudson.model.FreeStyleProject@16a93b8[ProjectB], hudson.model.FreeStyleProject@12947ee[ProjectC]]
{code}

h2. Addons

If you have a list of failed jobs you also could do other things than just printing them. The key is changing the last closure.

h3. Addon: Restart
{code}startServer = "admin computer"
startNote = "bulk start"
cause = new hudson.model.Cause.RemoteCause(startServer, startNote)
joblist.each{run -> run.scheduleBuild(cause)}
{code}