On Wed, Feb 15, 2012 at 8:08 PM, Vincent Massol <[email protected]> wrote:
Hi devs,
I've been working on Jenkins Job generation (see http://jira.xwiki.org/jira/browse/XCOMMONS-87).
The idea is to have a maven project that you run and which generates Jenkins Job automatically and sets them on ci.xwiki.org
The pros are: * Easy to create new jobs whenever we create a new branch * Allows to manager our Jenkins configuration by storing it in our SCM
Proposal 1 =========
xwiki-commons/xwiki-commons-tools/ |_ xwiki-commons-tool-jenkins/ |_ xwiki-commons-tool-jenkins-base/ |_ xwiki-commons-tool-jenkins-commons/ <-- parent = xwiki-commons-tool-jenkins-base
xwiki-rendering/xwiki-rendering-tools/ |_ xwiki-rendering-tool-jenkins/ <-- parent = xwiki-commons-tool-jenkins-base
xwiki-platform/xwiki-platform-tools/ |_ xwiki-platform-tool-jenkins/ <-- parent = xwiki-commons-tool-jenkins-base
xwiki-enterprise/xwiki-enterprise-tools/ |_ xwiki-enterprise-tool-jenkins/ <-- parent = xwiki-commons-tool-jenkins-base
xwiki-manager/xwiki-manager-tools/ |_ xwiki-manager-tool-jenkins/ <-- parent = xwiki-commons-tool-jenkins-base
To run them, you go in each of the top level project's tool directory and run "mvn deploy". It creates and deploys the Jenkins Job, updating the jobs if they already exist.
Proposal 2 =========
Create a new Git repository called xwiki-jenkins in https://github.com/organizations/xwiki
Have a single pom.xml in there which generates all Jenkins jobs (it's possible to have various profiles if we want to generate jobs only for a subset of modules).
You run it using "mvn deploy" too.
Proposal 3 =========
Extends Proposal 2 but merges with the repo currently named "xwiki-debug-eclipse" . That repo would be renamed to "xwiki-tooling" or "xwiki-development-tools" or simply "xwiki-tools" and would have 2 directories at the top:
xwiki-debug-eclipse/ xwiki-jenkins/
Note that both xwiki-debug-eclipse and xwiki-jenkins should follow the same version and be in sync with the other top level repositories since they're tools for a given version of commons/rendering/platform/xe/manager.
If they're together it means they'll share the same JIRA project and will use 2 components to differentiate them, which is perfectly fine.
Conclusion =========
I think I'm tempted a bit more by Proposal 2 and 3 because: * It allows to generate all jobs in one go * Jenkins is not really related to the rest of the build and thus it's not completely "normal" that its config should be mixed with building the runtime. For example when we deploy XWiki Commons to Maven Central it means users will see the Jenkins config there too with stuff that are only valid for xwiki.org. * It makes simpler for maintenance to have it all in one POM together.
I'm undecided between Proposal 2 and 3.
WDYT?
+1 for 3 Thanks, Marius
Thanks -Vincent _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs