Jenkins: Sharing variables in MultiJob

Jenkinsparameter-passing

I'm using Jenkins for testing/build purposes, so I created a MultiJob project with this configuration:

  1. Test Job
  2. Build Job
  3. Install Job

The MultiJob is launched from the Master Jenkins, but other jobs are launched from other Nodes.
The Build Job executes a shell script which creates the BUILD_ID.
Now, I want the BUILD_ID to be passed as parameter to the Install Job.
How can I do that? My only choice is to use a property file?

Thanks a lot

Best Answer

The question asks how to pass values between jobs for MultiJob projects, not Parameterized Trigger. Parameterized Trigger might not be a good solution because the downstream job will be executed outside of the scope of the MultiJob parent. To pass variables between MultiJob sub-jobs,

  1. Write variables to a property file in the first sub-job
  2. "Archive the artifacts" as post-build action in the first sub-job
  3. Between the first and second sub-jobs, insert an "Copy artifacts from another project" build. Set Project Name to the name of your first sub-job and Which Build to "Build triggered by current MultiJob build". Add your property file in "Artifacts to copy".
  4. In your second sub-job, under "Advanced...", Add parameters -> Parameters from properties file, and enter your property file name there. Your second phase will now have variables passed from your first phase.
Related Topic