Hello, there!
I am curious : "How to better manage cascading releases"
for the following use case and what you think about possible solution:
#################################
Releasing core bundles and dependent bundles
Changing the API of a core bundle for an application requires a rebuild of everything down the line in order to use the new feature. For projects with large numbers of modules (platform, news) this is a very lengthy process of splitting the bundles into dependency phases, then for each phase, releasing a new version of each bundle, updating the next phase's bundles with the newly released versions, and then releasing next phase's bundles, etc, etc. This can be a multiple hour process with Jenkins, compounded by the fact that you can only release one sub-project at a time in a Git repository to avoid push conflicts causing the build to fail. This process occurs much more frequently than I would have originally assumed. Right now I have a bash script that attempts to automate this for news with a combination of the maven release and version plugins, but a better generic solution would be very welcome.
Proposal: Modify Jenkins maven release plugin with the following behavior:
Add a "Cascade release dependent projects" checkbox on release page
After the release completes, look for jobs that are explicitly dependent on the pre-release snapshot version
Update these dependent modules with the newly release version, and trigger a Maven release on them as well
Failing releases should be skipped, and then trigger a build failure at the very end, with clearly noted messages as to which sub-tree failed so the user can check the logs and manually cascade release the subtree
Step c) would need some cycle detection to support scenarios where B and C depend on A, but C also depends on B - both A and B would have to be released before C could be released.
#################################
Thank you,
Andrei
--
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 jenkinsci-use...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
You received this message because you are subscribed to a topic in the Google Groups "Jenkins Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/jenkinsci-users/4OZsB9LV6nE/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to jenkinsci-use...@googlegroups.com.
We've put in place the first half of this by adding these goals to our maven builds:
--
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 jenkinsci-use...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
You received this message because you are subscribed to a topic in the Google Groups "Jenkins Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/jenkinsci-users/4OZsB9LV6nE/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to jenkinsci-use...@googlegroups.com.
Jeff, Jeremy:
you are right, we need both.
1) here is git repo for project layout use cases
https://github.com/barchart/barchart-jenkins-tester
2) for maven, I assumed we can use our respective private repository
"distribution" settings as defined by our settings.xml.
for example, when you run theses tests
https://github.com/barchart/barchart-jenkins-m2release-plugin/tree/master/src/test/java/org/jvnet/hudson/plugins/m2release
they build and fire up your local jenkins with plugin inside, which will use your local .m2/settings.xml
alternatively, we can setup shared maven repo on Amazon S3 or CloudBees@DEV
Thank you,
Andrei
Stephen
OK! We won't! :-) Thank you,
Andrei
You received this message because you are subscribed to a topic in the Google Groups "Jenkins Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/jenkinsci-users/4OZsB9LV6nE/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to jenkinsci-use...@googlegroups.com.
I would guess we would likely want/need both, unless there is a way to tell Maven to "deploy" snapshot or release artifacts only to the local repository. If it is possible, I don't know how to do that.
Jeff, Jeremy:
update:
1) I released first version of the the plugin.
https://github.com/barchart/barchart-jenkins-cascade-plugin/wiki
2) see if you can make sense out of it.
3) please file issues
https://github.com/barchart/barchart-jenkins-cascade-plugin/issues
and improve documentation
https://github.com/barchart/barchart-jenkins-cascade-plugin/wiki
Thank you,
Andrei