Here's how I do it using the "build-name-setter" and "Post_build_task" plugins:

The "build-name-setter" plugin can read a value from a property file in the 
workspace.  It reads it twice during a job run; first before any build tasks 
are executed, then again after all build tasks complete successfully.  My ant 
build generates our desired build name and writes it to a file named 
"version.properties" in the form "product.version=ACME-1.0_0052".  That 
version.properties file actually gets used for our solaris packaging, but I 
have a build step that copies it to the jenkins workspace so that I can also 
use it to set the build name in jenkins so they match.

1.  Configure build-name-setter to read a property file.  "Build Name" field 
should have the following:

${PROPFILE,file="version.properties",property="product.version"}

NOTE:  The first time you run the job, the version.properties file will not yet 
exist in the workspace, so the job will fail since it can't find the file.  No 
big deal since you will have a post-build task that will then create one for 
you (explained later).  If you don't want the first build to fail because of 
this, simply create the version.properties file in the workspace (on every node 
it can run on) ahead of time with this:  "product.version=BUILD_IN_PROGRESS".  
I've intended to try to find a plugin that can create the file in the workspace 
before the build-name-setter runs, but it hasn't been a high enough priority 
for me yet.  ;-)

2.  After my ant build step, I created a build step that simply copies the 
version.properties file (generated from my ant build) to the ${WORKSPACE}.  The 
build-name-setter will read that file again after all build steps complete 
successfully and set the build name.  Note that if any build steps fail, the 
build name will remain "BUILD_IN_PROGRESS" (pros and cons to that).

3.  Create a "Post build task" that will change the value of the 
"product.version" property back to "BUILD_IN_PROGRESS" for the next build.

Log text field:  version.properties
Script:  echo product.version=BUILD_IN_PROGRESS > 
${WORKSPACE}/version.properties

-Jeff Ng

From: jenkinsci-users@googlegroups.com 
[mailto:jenkinsci-users@googlegroups.com] On Behalf Of Umesh Padhye
Sent: Wednesday, March 20, 2013 8:07 AM
To: jenkinsci-users@googlegroups.com
Subject: EXTERNAL: Build name setting

Hello,

Below is my requirement.
I am grabbing build date info from a text file for my application and I want to 
set that as build name in Jenkins.
I tried approach of env var as build name.
I was running few batch files to extract build info from text file and setting 
them as env var.
But Jenkins nodes (one as win service and another as web slave agent) only 
recognize that env var if I reboot the system and nodes are relaunched.

I want basically build name to be set dynamically checking the text file 
content continuously.

Please help me how to achieve this.

Umesh
--
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
jenkinsci-users+unsubscr...@googlegroups.com<mailto:jenkinsci-users+unsubscr...@googlegroups.com>.
For more options, visit https://groups.google.com/groups/opt_out.


-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to