需要拉动请求通信策略

时间:2017-09-19 08:50:12

标签: continuous-integration devops continuous-deployment pull-request git-flow

实现持续部署进行基于干线的开发。这是我们的分支策略。

  

master >什么生活在生产中

     

发布>测试通过和CI服务器创建的发布点

     

dev >每天从开发团队合并。

如果我们考虑从发布阶段到主阶段执行拉取请求。 这种方法的优缺点是什么?我们如何与开发团队进行沟通,他们希望在dev分支机构开展PR工作?

enter image description here

1 个答案:

答案 0 :(得分:1)

我没有真正得到答案,但认为问题的背景值得进一步讨论。

如果您正在进行持续部署,那么我不确定Release分支的用途。它似乎重复了以下两者的目的:

  • ' master&#39 ;:正在部署/发布的代码
  • '开发'综合功能 分支机构,但尚未准备好发布

或者,您是否正在使用它来分组里程碑或计划的主要版本(即 Release / 1.0 Release / 2.0 ),就像迷你主分支一样。 /> 我不会考虑这种持续交付(可能是部署),但如果您的项目需要分阶段发布而不是持续交付,那么它肯定是一种有效的模式。

考虑您的CI设置以及它如何与您的分支机构集成也很重要。它不是部署到Production的源代码,而是来自CI系统的构建工件。考虑这一点可能会简化您的分支模型。 如果要回滚,您不想从源重建应用程序,则需要重新部署先前版本的预构建工件。同样,如果您的构建已通过所有测试并准备发布 - 希望已经在您的预生产环境中运行 - 您不想将其合并到不同的分支,重建它然后部署新版本 - 您使用已测试的版本。

下一个考虑因素是每增加一个分支就会增加时间和时间。开发人员的复杂性。合并,拉取请求,等待CI运行等等都不是免费的,因此将分支策略的复杂性降低到所需的最小值是一个很好的目标。

要回答关于PR去往/来自哪里的问题,您是否考虑过" Develop"作为主线并试图保持稳定并始终工作?
如果是这样,那么从特征到开发的PR是关键的集成。然后构建,测试并部署开发到您的测试环境 然后,已知从该点开始分支(即创建释放分支)是好的。 将该工件从您的测试环境升级到生产而无需重新构建,可能会消除对您的某个分支的需求。