Jan*_*zny 8 git teamcity teamcity-8.0
如何设置TeamCity触发器以开始构建git子模块中的更改?
目前,您必须更新子模块提交指针以触发主存储库中的构建,以便TC将在主存储库中注册更改.
更新
问题是子模块应该始终跟踪分支主机.AFAIK这不能通过git本身来实现.我只是希望构建能够克服git限制.
这不是一个巧妙的解决方案,但实现了使用子模块的尖端构建项目的目标,并且不需要手动更新子模块。(一个钩子可能就可以了)
使用子模块作为主存储库创建单独的构建配置,并设置命令行构建步骤来克隆 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
Run Code Online (Sandbox Code Playgroud)
我是 git 新手,所以这可能可以优化。
这是不可能的,因为 TeamCity(和 git)无法知道有更新。存储库中的子模块条目仅指向提交。
它会更新什么?此提交可以有多个分支和提交。只有您可以决定将子模块更新到哪里。