How to use Jenkins parameters in a shell script
Solution 1
Jenkins will create environment variables with the parameters' names.
The caveat here is that Jenkins will also do that for parameters that do not represent valid variable names -- those are difficult to access in bash
. This is the case in your example, as bash
variable names must not contain the .
character.
The easiest solution is that you
-
rename your parameters, e.g. to
high_version
andlow_version
(which are validbash
variable names) - then use the corresponding variable names when calling your script
Example:
/bin/bash /hai/mycode/scripts/run_script.sh "$high_version"
If you cannot rename parameters to represent valid bash
variable names (e.g., for usability reasons: Jenkins presents variable names to end users in the Web form for starting a build): you can still access such parameters by grepping for the parameter name in the output of the env
command.
Solution 2
What really helped me was Hudson: How to pass parameters to shell script
Solution: the variables are UPPERCASE even you define them in lowercase!
Solution 3
Use following syntax to pass jenkins parameter to shell script -
eg. YourScript.sh %JENKINS_PARAMETER% after that in your script,you can use that parameter like normal shell script command line parameter. eg. myParam = $1;
Related videos on Youtube
IMRAN SHAIK
Updated on July 09, 2022Comments
-
IMRAN SHAIK almost 2 years
I want to use the parameters that we define in the Jenkins job as arguments to the shell commands in the same job.
I have created a parameterized build with the following parameters:
high.version: 234 low.version: 220
I want to use these variables as arguments for the build's shell script:
/bin/bash /hai/mycode/scripts/run_script.sh high.version
How do I these parameters in the same job?
-
Florian Straub almost 5 yearsIt looks like meanwhile they changed it and the variables are case sensitive.
-
mooreds over 4 yearsYes, as of 2.210 (at least, that's the version I'm running), parameters are turned into variables without modifying . That is, I created a parameter named "choice" and was able to
echo $choice
and see the value of my parameter.