How do i pass parameters from Jenkins to Ant scripts?

30.3k views Asked by At

For some GUI testing I'm creating a Jenkins task for each GUI module to be tested. Once created I'm using Ant to build these tests, but I'm not aware of how to actually pass parameters from Jenkins to Ant build file? Basically how do I do variable substitution in Ant?

I'm using the Sahi framework to test GUI components, so the flow goes like this...

Jenkins → Ant build script → Sahi file to execute

Can anyone please take a look at it?

3

There are 3 answers

0
abhinav On

Click Advance under configure section of your job in jenkins and use "Properties" section to pass parameter value to Ant script. e.g

jenkins.param=10 ant.prop=$jenkins.param where jenkins.param is the parameter defined in the jenkins job . Now in your ant build script ,you can get the value by using ${ant.prop}.

0
Tyler Smith On

"Using ant -Dname=value lets you define values for properties on the Ant command line." http://ant.apache.org/faq.html#passing-cli-args

To use a jenkins parameter as a variable when you call any use ${variablename}

https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Build

0
Sreekanth On

From Jenkins to SAHI Pro via ANT.

In the ant target that you call from Jenkins, give the following within sahi tag.

  <customfield key="variable_name" value=" variable _value"/>

Now, such values from Jenkins will be available in SAHI Pro through the ant target. To retrieve them in SAHI, you should set them in “CUSTOM_FIELDS” of testrunner file.

For example: SET CUSTOM_FIELDS= -variable_name jenkinsToSahiVariable

Where -variable_name should be same key that you set in ant target. And second string will contain the value you set from Jenkins. To get this in a sahi file, use sahiSuite API like following.

  $jenkinsValues = _suiteInfo();
  $sahiVariable = $ jenkinsValues ["jenkinsToSahiVariable"];