Trigger a TeamCity build on changes in a git submodule
git, teamcity, teamcity-8.0
Solution
This is not a neat solution but is achieves a goal to build a project with the tip of the submodule, and not needing to update submodule by hand. (A hook would probably do to)
Create a separate build configuration on with the submodule as the main repo, and setup a command line build step to clone a maste-repo, pull/update submodule and push the updated submodule pointer back to the master-repo.
rm -r master-repo
git clone git@github.com:xxx/master-repo.git
cd master-repo
git status
git submodule update --init
git config -f .gitmodules submodule.submodule-repo.branch master
cd submodule-repo
git pull origin master
git status
cd ..
git add submodule-repo
git commit -m "sub module update"
git push origin master
I'm new to git so this probably can be optimized.
Problem
How to setup TeamCity trigger to start build on changes in git submodule? Currently you have to update a submodule commit pointer to trigger a build in the main repository, so that TC will register a change in the main repository. Update The problem is the submodule should be always tracking a branch master. AFAIK this cannot be achieved through git itself. I just would like for the build to overcome git limitation in that matter.