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? Thanks -Vincent