0

我正在尝试为我们公司设置持续交付,并且对如何做到这一点有疑问。

目标

目标是在每次更新 master 时构建并部署在 staging 上。

下一步将是有一些界面,以便项目经理可以验证登台并将部署部署到客户端登台,然后客户端验证并触发部署到生产。

我认为应该做的事

构建和测试(持续集成)工作正常。

但是为了进行交付跟踪,我认为我应该有一个分支“登台”,我在上面进行构建然后推送。

问题

当我这样做时,我的分支“暂存”最终会发生冲突:如果 2 个管道并行工作,一个在另一个之前结束,第二个将无法推送,因为 git 会告诉“更新被拒绝,因为远程包含您在本地没有的工作。这通常是由另一个存储库推送引起的......“。

我感觉不对;)

我可以做一个推力,但感觉就像我做错了事。

您对这种情况有何建议?

4

1 回答 1

0

你有什么本质上是一个锁定问题。我见过的最好的解决方案是,当它失败时,它会立即重新启动。当它这样做时,它所做的'git pull'会有所不同(因为另一个分支的成功导致'staging'改变了它的HEAD),然后它将合并分支并再次运行测试并尝试推送。 ..如果失败,它将重复,但如果成功,则完成。

于 2017-05-11T16:18:42.747 回答