我想设置一个简单的存储库,其中包含在Travis CI上编译的不同项目的输出。
我无法弄清楚如何从Travis控制台安全地推送到存储库是最简单的方法。如果有两个项目同时构建,并且两个项目碰巧同时推送,其中一个项目自然会因未更新的refs错误而失败。
由于每个提交中的路径都保证是唯一的([项目名称] / [提交ID]),我能想到的最好的是这样的脚本:
while $(git push) not ok {
git pull --rebase
}
你能想到更好的事情吗?
答案 0 :(得分:0)
解决方法是推送到两个不同的分支B1
和B2
,并在服务器端有一个post-receive
挂钩,将这些分支合并到master
。
由于每个提交中的路径都保证是唯一的,因此这些合并不会产生任何冲突并且可以自动化。
推送到两个不同的分支意味着不应该有任何并发问题。
由于远程是GitHub,另一种方法是在Travis-CI端合并这些分支,然后只推送一个分支。