How to organize and avoid concurrency problems in big projects, splitted in multiple jobs and chained to each other in Hudson?
If you have a lengthy process, it will be a good practice to split it in multiple tasks, having each calling the next one, like in the (somewhat simplified) image on the left.
Problem number one: How to avoid Clean and Build (for instance) running at the same time?
As (almost) always, “you have a plugin for that” in Hudson. This time is Locks and Latches, which will let you create a lock, shared by all the jobs you want. Only the job that has the lock, will be executed.
So far, so good, but, where is the problem?