Jenkins: change the build history from different job -


i have 2 jenkins jobs:

  • build project
  • deploy it

both working , can trigger deploy job project build job.

steps:

  1. build parameters in application's job >> check deploy on dev >> build
  2. add yellow star badge build history in application job - groovy post-build action (code below)
  3. trigger deploy job post-build action

question

  1. after deploy job finished , failed change build history of application job (yellow star >> eg red one) - deploy job. how can that?
     if ("true".equals(manager.build.buildvariables.get('deploy_on_dev'))) {       manager.addbadge("star-gold.gif", "snapshot deployed on dev")       } 

this took me while develop works charm in post-build actions → add post-build action → groovy postbuild → groovy script:

import hudson.model.build import hudson.model.cause import hudson.model.project import jenkins.model.jenkins import org.jvnet.hudson.plugins.groovypostbuild.groovypostbuildaction  def log = manager.listener.logger log.println('  ----------------') log.println('  groovy postbuild')  // decorate build manager.addshorttext('snapshot deployed on dev', 'black', 'gold', '1px', 'black') manager.addinfobadge('snapshot deployed on dev') manager.addbadge('star-gold.png', 'snapshot deployed on dev')  // decorate upstream builds jenkins jenkins = jenkins.getinstance() list<project> projects = jenkins.getallitems(project.class)  log.println("    build: '${manager.build}' --> " + manager.build.getresult()) log.println('    decorating following upstream builds:') //log.println(manager.build.getupstreambuilds())  // prints "[:]", using upstream builds doesn't work  (cause cause : manager.build.getcauses()) {   (project project : projects) {     if (cause.tostring().contains(project.getname())) {       int no = cause.getupstreambuild()        build usb = project.getbuildbynumber(no)       log.println("      ${usb}")        usb.getactions().add(groovypostbuildaction.createshorttext(           'snapshot deployed on dev', 'black', 'gold', '1px', 'black'));       usb.getactions().add(groovypostbuildaction.createinfobadge(           'snapshot deployed on dev'))       usb.getactions().add(groovypostbuildaction.createbadge(           'star-gold.png', 'snapshot deployed on dev'))       }     } // (projects)   } // (causes)  log.println('  ----------------') 

note:

this adds badges regardless of build result i'm confident can add appropriate if easily. removing badges see groovy postbuild plugin's page.

references:


Comments