This sounds like an ideal use case for matrix/multi-configuration jobs. 
Just create a matrix job, use the slave labels as your configuration axes 
(check all the slaves you want this to run on), and follow your nose.

Since I suspect you will need to perform slightly different actions for the 
Windows and Linux slaves, I would probably use the Conditional Build Step 
plugin to determine (through evaluation of the build environment variables 
- e.g. NODE_LABELS) what type of slave the build was happening on, and then 
run either a shell script or Windows batch script to do the rest of your 
work. I'm making some assumptions about the specifics of your build process 
here, but it seems like this would be pretty straightforward.

There don't seem to be that many people using matrix jobs in the Jenkins 
community, for some reason, so I've always found myself having to 
experiment a bit to get them to work. Occasionally you find plugins that 
don't work in that type of job for whatever reason, and there are other 
gotchas. But we use them heavily and to good effect. Let me know if you 
have further questions.

On Friday, August 16, 2013 6:52:02 AM UTC-7, leopard wrote:
>
> Hello,
>
> I could not find anyone reporting their experience on a certain use case I 
> have trouble implementing in Jenkins:
>
> We'd like to run acceptance tests on our application, which is composed of 
> several sub-systems running concurrently on different servers with 
> different operating systems (linux & windows).
>
> For example, a certain test might require a deployment of 2 linux systems 
> (each running a different sub-system) and a windows system.
>
> Basically we need a way to run the following process:
> * a = Acquire a slave with label 'linux-server'
> * a_ip = find the ip address of slave '$a'
> * Deploy sub system A on 'a'
> * Do something similar with a slave that we will refer to as "$b" with 
> sub-system B
> * Do something similar with a slave  with label 'windows-server' that we 
> will refer to as "$c" with sub-system C
> * Run the acceptance tests on a system that is deployed on servers: 
> "$a_ip, $b_ip, $c_ip"
>
> Currently we run the automatic acceptance tests on pre-deployed servers 
> but this approach does not scale well.
>
> Some notes
> * We prefer a solution that uses jenkins slaves (vs computers that are 
> managed in other ways, like a cloud provider), because we re-use the 
> jenkins slaves for running other types of activities (build, integration 
> tests)
> * We have no way to run all of the sub-systems on the same server (for 
> example, to test the "failover" feature of our application, we may want to 
> tests that if a server running a critical sub-system crashes, then another 
> server automatically runs the critical service)
>
> Thanks!
>

-- 
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