Hi all,

I have a scenario that I am not able to solve without some downsides. I 
don't know if my workflow is currently supported or not so I search for 
your help.

*Scenario:*

*Compilation job:* Maven job that executes unit tests and creates 
deliverables
*Deploy job:* Capistrano deployment that deploys deliverables to target 
machines based on eligible parameters (cd, testing, staging...) 
*Integration job:* Executes a smoke test using BDD.
*BCT job:* Same as Integration but with customer tests and multiple 
browsers.

*Process:*

We have a build pipeline based on [compilation -> deployment to server -> 
execution of smoke tests (integration) -> execution of compatibility tests] 
that has a step that takes too much time to complete (smoke test). Since 
deployments should not happen when tests are being executed (would break 
the compilation chain) we have decided to block deployment build until the 
downstream finishes... That's OK.

*Problem:*

Since deployment jobs are blocked by downstream, whenever an IT or BCT job 
is being executed deployment is forbidden, either to the affected machine 
or to any testing machine, so we can not perform deployments to testing 
scenarios for QA to test (an old build for example).

*Possible solution:*

My possible solution would be to block the execution of deployment *if and 
only if* the target machine is cd and smoke or BCT tests are being 
executed. I need a two factor check, one from parameters of the current 
build (easy) and another from downstream executors. 

I don't know if that is possible. If that scenario is possible... how can I 
implement it? Groovy? Can I mark a build as queued and allow other builds 
to go ahead (parallel builds maybe)?

Thanks for the help.

-- 
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/d/optout.

Reply via email to