我正在研究项目A,A依赖于快速开发的项目B(它的主分支).
因此,B是A的子模块,每次我建A,B也重建.此外,每次B有一个新的提交,我需要构建B,然后重新构建A.(幸运的是,项目足够小,所以编译时间并不重要).
现在,这就是重点.当项目A或B中有新的提交时,我想在Travis CI或其他持续集成服务中触发新的构建.
我刚试过Github&Travis CI.项目B中的提交不会触发项目A中的构建.是否有一种简单的方法来运行这种持续集成?
项目B中的提交不会触发项目A中的构建
考虑到B不知道A存在,这是预期的.
您需要通过以下操作记录项目A 的新B状态(新gitlink,索引中的特殊条目):
cd /path/to/projectA git submodule update --remote git add . git commit -m "Record new B SHA1 gitlink" git push
git submodule update --remote
将子模块B更新.gitmodules
为B文件中记录的分支的最新提交.
请参阅" git submodule tracking latest "和" Git子模块:指定分支/标记 "
然后将为A触发新的Travis构建.
如果你想自动化上面描述的序列,你需要一个用于projectB 的webhook(GitHub)(或BitBucket),以及一个本地监听器,它在repo B上的push事件中将触发前面提到的命令在本地repo中项目A.