我正在尝试为我们公司设置持续交付,并对如何做到这一点产生怀疑。
目标
目标是在每次更新主服务器时构建并在staging上进行部署。
下一步将是拥有一些界面,以便项目经理可以验证登台并触发部署到客户端登台,然后客户端验证并触发部署到生产。
我认为应该做什么
构建和测试(持续集成)工作正常。
但是为了进行交付跟踪,我认为我应该有一个分支“暂存”,我会进行构建然后推送。
问题
当我这样做时,我最终在我的分支上发生冲突“暂存”:如果两个管道并行工作,一个在另一个之前结束,第二个将无法推送,因为git将告诉“更新被拒绝因为遥控器包含你本地没有的工作。这通常是由另一个存储库推送......“。
我感觉不对;)
我可以做一个推力,但感觉我正在以错误的方式做事。
您对这种情况有什么建议?
答案 0 :(得分:0)
你有什么本质上是一个锁定问题。我见过的最好的解决方案是,当它失败时,它会立即再次启动。当它这样做时,'git pull'它会有所不同(因为另一个分支的成功导致'staging'改变它的HEAD),然后它将合并分支并再次运行测试并尝试推送。 ..如果它失败了它会重复,但如果它成功,那就完成了。