Jenkins : Passing a parameter from one job to another

Hey all,

I had this interesting thing to do :-

Requirement: To pass a parameter from one Jenkins job to another(downstream job) & to display this parameter as part of the second job report.

 Solution:After reading few threads on the solution, I inferred that the plugin that would do the job for me was this “Parameterized Trigger Plugin”. –> https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Plugin

Once this plugin is installed , go to Job 1(upstream job) > Post-Build Actions > Select ”Trigger parameterized build on other projects”

The option I chose is given below :-

Screen Shot 2015-02-09 at 4.04.49 pm

I had to send the ‘Build_Number’ of this job to the next. So assigned to a variable ‘Temp’.

The complete list of Jenkins Environment Variables are seen here.

In the Downstream Job: To access this parameter use $Temp where you need it. In my case I used in the Editable Email Notification.

There are many other ways of assigning parameters from one job to another using this plugin. You can explore them. This one worked for me like a charm so thought I’d share my 2 cents :).

Regards,

VJ

16 responses to “Jenkins : Passing a parameter from one job to another

    • In the newest (since 1.651.2) versions of Jenkins you must define your passed parameter (Temp in the example) as a parameterized build parameter in the downstream job before the parameter will be passed.

      Like

      • Hi Randy,
        Thank you so much. This is working for me.. Banging my head from 2 hours. After upgrading my jenkins to 1.651.3, enviornment injection suddenly stopped working. Yes we have to define the same parameters in both parent and child jobs. Unfortunately there is no clear documentation on this

        Much appreciated your help.

        Liked by 1 person

  1. This works for post build, but not for promoted builds.

    I worked around it as recommended by someone on stackoverflow by creating a parameters file and loading it into the promote build job.

    Also, using parameters on the promoted build doesn’t work as it escapes everything and doesn’t translate vars into values before the escaping.

    Like

    • Hi,

      Could you describe how did you load a parameters file into your promoted build?

      I always get error:
      > [parameterized-trigger] Properties file my.properties did not exist.

      on attempt to start a promoted build. It seems that file that is created during build run doesn’t not exist anymore when promoted build starts.

      Like

      • I think I figured it out. In order to pass any of custom build environment parameters to a promotion build, those params should be saved to a file during build and archived into build artifacts. So the promotion build can use “Copy artifacts” plugin to get the artifact archive from upstream build. Using “Inject environmental variables” plugin the params from the file get injected into promotion build.

        Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s