How to get specific information about the current

2019-03-26 05:44发布

问题:

In Jenkins/Hudson, with the help of a Postbuild Groovy script, I would like to get one of the following:

  • an environment variable (e.g. current JOB_NAME, BUILD_NUMBER etc.)
  • the result of a specific build number of the current project
  • the build number of the last not successful build in the current project

At the moment I only found the following way, but it's rather limited:

def item = hudson.model.Hudson.instance.getItem("GroovyMultipleFailTest") 
def build = item.getLastBuild()
build.getNumber()

回答1:

${manager.build.getEnvironment(manager.listener)['BUILD_NUMBER'] }


回答2:

Bo Persson had the best answer, but was a little short.

To access the environment variables from the build in the Groovy Postbuild, you can grab them from the build. This sample code is useful for dumping all of the BUILD's environment variables to the console:

manager.build.getEnvironment(manager.listener).each {
    manager.listener.logger.println(it);
}


回答3:

If you're using Groovy script within "Env Inject", you can get current build and current job by:

currentJob.getName()
currentBuild.toString()


回答4:

Using Jenkins v2.17 this works for me:

echo "BUILD_NUMBER=${env.BUILD_NUMBER}"



回答5:

an environment variable (e.g. current JOB_NAME, BUILD_NUMBER etc.)

String jobName = System.getenv('JOB_NAME')


回答6:

The only way I got it to work for me was with build.properties.environment.BUILD_NUMBER