Hi, This is probably a question for Jenkins users and developers (I'm only subscribed to the users list so the dev one might bounce).
Our software is structured as a number of separate git repos which are collected together under a super project. Our legacy build system runs through a few steps: 1. prep - checkout 'build' branch of the super project and fetch the tip of each submodule (git checkout build && git submodule foreach 'git pull') - determine if anything new is in any of the submodules (git diff-tree HEAD) - if there are any changes create a new commit in the build branch ready for the next step (git commit -a -m"<summary generated by more git magic>" && git push) 2. build (run for multiple targets on separate build machines) - get the code setup in the prep step (git checkout build && git pull && git submodule update) - do the build (make ....) - results for all targets are aggregated for the next step 3a. merge (on success) - the 'build' branch of the project is merged to 'master' (git checkout master && git merge build && git tag "$BUILDID" && git push --tags) 3b. blame (on failure) - figure out the authors of the commits to the submodules and email them that they've broken the build (some git magic involving git diff-tree on the project an git log/rev-list on the affected submodules). We don't generally commit directly to the super project. Instead we commit to individual repositories and want the build system to make sure that the 'master' branch of the super project is always a stable baseline. We'd like to be able to use Jenkins to drive this process but we're running into a few problems that maybe someone here can help solve. The problems are all to do with that submodules aren't descended into when polling the SCM and when getting the list of changes (which I presume is the same for listing changes and for sending emails on failure). The first problem can be worked around using a ScriptTrigger and doing the polling manually. I haven't figured out a solution for the second problem. Possibly some kind of script run on a failed build assuming I'm able to get at the tag/commit of the last good build and send the email manually. I'd be really keen to help expand the knowledge of submodules within the git plugin so that I polling the SCM will work and so that changes from submodules could be included in the build notifications. I'm also aware that this is not the only work-flow that git submodules can support so there would need to be some configuration to enable the kind of behaviour we're interested in. Thanks, Chris
