Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to run parametrized job after another (without params)

I have a job in Jenkins which has 2 params. I want to run another plan, which has no params and from that plan, launch the existing plan as many times as required.

The new plan needs to be scheduled to run each 15 minutes (will be done by Jenkins' scheduler option), the code of that plan will:

  • connect to a db
  • get required recordset
  • start looping the recordset
    • store the key/value pair (parameters for the existing job)
  • end looping

Once this is done, I need to run the existing job with each key/value pair that was stored. Can I do it like this out of the box with Jenkins (using 1.406) or do I have to call the existing job remotely? I don't see how to pass parameters from one plan to another when using the "Build other projects" option in the "Post-build Actions" section (configuration of a plan)

Thanks

like image 858
user706058 Avatar asked Jul 25 '11 13:07

user706058


People also ask

How do you run the same job multiple times in parallel with Jenkins?

You will need to configure your "child" job so that it can run in parallel by checking the "Execute concurrent builds if necessary" in the job configuration. Whatever set of slaves provide the connection to the embedded devices will need enough executors to run your jobs in parallel.


1 Answers

There is a Parameterized Trigger Plugin which, once installed, allows you to trigger a parameterized build after one build has finished.

The easiest way to accomplish what you want would be to install this plugin, and build the project once with the key/value list that you want to build against. If for some reason you need to execute the build multiple times after the first job completes, then you could use the remote API to start builds from your first project. So you have two options:

Option A

  • Project1 executes, creates a file with key/value pairs
  • Project1 completes, is configured to execute Project2 with parameters (using the Parameterized Trigger Plugin)
  • Project2 loops through the key/value pairs, doing whatever you need to do for each one

Option B

  • Project1 executes. For every key/value pair, it hits the following url http://server/job/<Project2 Name>/buildWithParameters?PARAM1=Value1&PARAM2=Value2 (you will need to substitute in your actual project name and parameter names/values)
  • Project2 takes these parameters and builds as normal, using the parameter values wherever it needs to
like image 72
Laepdjek Avatar answered Oct 07 '22 23:10

Laepdjek