-
New Feature
-
Resolution: Won't Fix
-
Minor
-
None
We intend to use Hudson for releasing our components. This will be a manually triggered process and I have been looking at the batch task plugin (http://wiki.jenkins-ci.org/display/JENKINS/Batch+Task+Plugin) which partially does what I want.
We would like to avoid having to start releasing components on the lowest level and then work upwards the food chain. Instead it would be very nice if one can trigger the release cycle on the highest level which causes lower level dependencies to be released as well (if there any changes but that is handled by the build script). Of course, this requires that all ivy.xml's are in synch or at least using latest.release.
This could perhaps be realized by a reversed Ivy plugin, i.e. before a project is built, all its dependencies are built. Then, by having a separate release project (invoking a special Ant target) on the highest level, I can achieve the above. It would of course be even better if a project could be reused but that might be very complicated.
Or am I way off here?
Haha, that's quite a tall order
The first problem I can foresee is that the first build needs to actually start running before it can do anything (meaning that it would need to be assigned to an executor). So, it would sit there, blocking any other build from using that executor until all its dependencies were built, then it would build itself. That could hold up other builds for while.
One possible solution would be to use a new kind of wrapper ivy project that would act a bit like the Matrix Projects. It could just create a virtual executor, and manage the whole process on the side, never actually building anything itself. The final release build you were actually wanting could then be an inner project that would spawn off to a different executor (just like the Matrix Builds do with their different configurations).
Anyway, it's a fairly big feature I think, but definitely quite useful... I'll have to think about it.