joseph.hainline
joseph.hainline

Reputation: 26678

Jenkins Build Flow Plugin having trouble passing parameters between builds

I've got a set of parametrized builds in Jenkins that to build I have to click 'Build Now' and then enter a value for the parameter (in this case called GIT_TAG_NAME). I'd like to trigger a set of these parametrized builds that all use the same parameter without typing it multiple times.

I'm trying to get this working with the Build Flow Plugin (https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin), by making a master build flow that triggers all the other builds, but I'm not understanding the plugin syntax, or maybe this just isn't possible.

My DSL looks like:

out.println "-------------------------" 
out.println 'Building all OTA builds at tag: '
out.println params["GIT_TAG_NAME"]
out.println "-------------------------"

build( "SomeOTA-Build-1", param1: params["GIT_TAG_NAME"] )
build( "SomeOTA-Build-2", param1: params["GIT_TAG_NAME"] )

The print statement prints the parameter correctly, but the child builds don't seem to get the parameter passed in to them.

Upvotes: 1

Views: 4523

Answers (1)

Gonen
Gonen

Reputation: 4075

Try using the Parameterized Trigger Plugin -

  1. Set Job-A with a parameter GIT_TAG_NAME - this is your "front-end"

  2. Set Job-B1, Job-B2 and Job-B3 with the same parameter GIT_TAG_NAME - those do the actual work

  3. Set Job-A to Trigger parameterized build on other projects (in Post-build Actions)
    and pass Current build parameters to the triggered jobs
    (need a trigger per derived job - either with same or different conditions)


Now, running Job-A will rigger the other jobs, while passing them the value of GIT_TAG_NAME.

EDIT:
There is a Plugin from TIKAL that uses a different approach:
Multijob Plugin tries to squeeze all job-steps into one big job
(have not tried it, so cannot comment on this approach).

If taking the first approach, you would probably want to take a look at the Join Plugin -
this plugin allows a job to be run after all the immediate downstream jobs have ended.

Upvotes: 2

Related Questions