amphibient
amphibient

Reputation: 31248

How to pin revision number of Jenkins build?

I have a Jenkins multiphase job that

  1. gets an update from version control (Subversion)
  2. does a Maven build. Couldn't be more cut and dry.

The 1. above, svn update, does return a latest revision number. I would like to fetch that into 2. so that the build and its associated artifacts do have that number pinned to them, if any way possible in the artifact name itself but, if not, in the build history. Is there a way to do it and how (e.g. using the subversion or another plugin)?

I am using the buildnumber plugin to fetch the build number and generate a small text file that is contained inside my WAR artifacts, which makes it subsequently available via HTTP. But to see it, one must either first deploy the artifact or at least extract its contents. I would like it more readily visible in Jenkins.

Upvotes: 0

Views: 842

Answers (1)

R. Karlus
R. Karlus

Reputation: 2256

You should take a look at How to get SVN revision number in Jenkins Workflow Plugin? - He solved the problem with:

def revision = 'svn info'.execute().in.text.split('\n').find { it.startsWith('Revision') }.split(':')[1].trim()

He's obviously using the latest Jenkins version, but if you're using one of the old Jenkins versions you can simply run the following command and parse the result to get the revision number you want:

svn info -r HEAD

BTW you can use a Jenkins constant too. In the browser you can open http://your-jenkins-host/env-vars.html/ and you will find a constant named SVN_REVISION. Each job build keep the SVN revision into that variable.

Upvotes: 1

Related Questions