Jenkins: Sharing variables in MultiJob

前端 未结 4 1675
暗喜
暗喜 2021-01-18 02:00

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
  4. <
相关标签:
4条回答
  • 2021-01-18 02:13

    To use the suggestion i am going to describe, you will need Parameterized Trigger plugin. One way to pass custom parameter to a downstream job is by storing the key & value pair (key=value) in a file and specifying the same file by selecting Parameters from properties file option while calling downstream (in this example, job B) job. Refer the screenshot below:

    enter image description here

    Now you can access the variable in downstream job 'B' by using $BUILD_ID. You would also like to enable the option Don't trigger if any files are missing.

    0 讨论(0)
  • 2021-01-18 02:14

    You can pass the parameter BUILD_ID by using Predefined parameters option in the multi-job phase.

    Steps are as follows:

    • Go to configure page, by clicking on Configure link of your multijob
    • Click on Advanced button of the job where you want to pass the parameter;
    • Click on Add Parameters, select Predefined parameters. Then create a parameter name of your own choice and assign the BUILD_ID to it;
    • Create the same parameter by enabling This build is parameterized option in downstream job where you want to receive the defined parameter. Then you can use the same in your script.
    0 讨论(0)
  • 2021-01-18 02:16

    First you need add to the "install job" a string parameter called "BUILD_ID" and then once your build job is done you can "Trigger Parametrized build on on other project " and add the parameter of the next build being the BUILDID=%BuildID%

    For more info on paramterized job on Jenkins read the following link: https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Build

    you might need to install a plugin for that. Link above.

    0 讨论(0)
  • 2021-01-18 02:25

    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.
    0 讨论(0)
提交回复
热议问题