Hi,

I'm not sure I'm even asking the right question, so here's what I'm trying 
to do and what I've done so far:

I'm setting up Jenkins on a Mac Pro, using Parallels vm's as slaves to 
build on many different platforms (probably 14 to start).  I'll have way 
too many vm's to keep them all running all the time, so when I want to 
build, I need Jenkins to:
 - start a vm
 - wait until the vm finishes booting
 - run the particular build script for that vm
 - shut down the vm
At that point, free up the executor to begin the cycle over again with 
another vm.  I'm guessing I have enough RAM to have 3 executors doing this.

I have created separate jobs to start a vm, run the appropriate script on a 
vm (after a quiet period to allow booting to finish), and stop a vm.  The 
jobs are chained:  the Start VM job has a post-build action to start the 
Build job (which is tied to the appropriate vm), which has a post-build 
action to start the Stop VM job.

I can duplicate this for all 14 vm's (totaling 42 jobs), and create a 
Start_All job that has a post-action build for all 14 Start VM jobs.  But 
that still leaves me wondering how to ensure that all 3 jobs associated 
with any given vm (start the vm, build my app, stop the vm) will be 
completed before freeing the executor to start the next Start VM job.  I 
can't have my executors just blazing through starting vm's - I'll quickly 
run out of RAM.

I looked at multi-configuration projects, but am not clear how that could 
help, since I have a different script to run on each vm, and the vm's have 
to be started and stopped.

Is there a "best practice" way to do this?  Or am I stuck chaining all 42 
jobs, and limiting to 1 executor?

Thanks,
David

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to