How to use Jenkins parameters in a shell script

94,206

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 and low_version (which are valid bash 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;

Share:
94,206

Related videos on Youtube

IMRAN SHAIK
Author by

IMRAN SHAIK

Updated on July 09, 2022

Comments

  • IMRAN SHAIK
    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
    Florian Straub almost 5 years
    It looks like meanwhile they changed it and the variables are case sensitive.
  • mooreds
    mooreds over 4 years
    Yes, 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.