Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Jenkins - Running a single job in master as well as slave

Tags:

jenkins

I have a master (linux) and a windows slave set up, and would like to build a single job both on the master and the slave. The "Restrict where this project can be run" option allows us to bind the job to a particular slave but is it possible to bind one job to the master as well as slave? How would one configure the "Build Step" since running it on Windows requires a build with Windows batch command and Linux requires shell command. For example even if the job tries to run on master and slave, wouldn't it fail at one point since both the build options (with batch and shell command) will be executed?

like image 800
Pythomania Avatar asked Feb 09 '12 16:02

Pythomania


1 Answers

Well, in Jenkins you can create groups of machine (either master or slaves), to do this :

  • click on the machine name on the first page of jenkins
  • enter in the node configuration menu
  • then, you can enter some labels in the Labels field. Let's add a mutli_platform label for example
  • go back to the first page of Jenkins
  • do it for each machine on which you need to run the job
  • go back to the first page of Jenkins
  • click on the job you want to run on multiple nodes
  • go in the configuration menu
  • check the Restrict where this project can be run and put the mutli_platform in it.

Then, your build will be able to run on the mutli_platform label.

For the second part, the multi-platform script, you can use ant builds, or python builds (with the python plugin).

EDIT: If you need to build on the 2 (or more) platforms, you should use a Matrix Job. You will be able to create a job and force it to run on every slave you need.

like image 155
Cédric Julien Avatar answered Oct 23 '22 12:10

Cédric Julien