i have 2 jenkins jobs:
- build project
- deploy it
both working , can trigger deploy job project build job.
steps:
- build parameters in application's job >> check deploy on dev >> build
- add yellow star badge build history in application job - groovy post-build action (code below)
- trigger deploy job post-build action
question
- 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
Post a Comment