首页 > 解决方案 > 使用 GitHub 流的开发和生产环境

问题描述

在工作中,我们现在正在使用 GitHub,并使用该 GitHub 流程。我对 GitHub Flow 的理解是有 master 分支和 feature 分支。与 git flow 不同,没有开发分支。

这在我们已经完成的项目上非常有效,并且简化了事情。

但是,对于我们的产品,我们有一个开发和生产环境。对于生产环境,我们使用master分支,而对于开发环境,我们不知道该怎么做?

我能想到的唯一想法是:

  1. 当分支与 master 合并时,使用 GitHub 操作重新部署 master。
  2. 当推送另一个分支时,设置一个 GitHub 操作,以便将任何其他分支(除了 master)部署到此环境。

目前,对于需要开发环境的项目,我们本质上是在使用 git flow(功能 -> 开发 -> 主控)。

您认为我的想法是否明智,如果不是,您会推荐什么?

编辑:

澄清一下,我问的是使用GitHub Flow而不是git flow实现开发的最佳方式。

标签: githubbranching-and-merginggit-flowgithub-actionsgithub-flow

解决方案


根据我的经验,具有多个环境的 GitHub Flow 就是这样工作的。合并到 master 不会自动部署到生产环境。相反,合并到 master 会创建一个构建工件,该工件可以通过使用 ChatOps 工具的环境进行升级。

例如, push tomaster创建一个名为 的构建工件my-service-47cbd6c,它是服务名称和短提交哈希的组合。这被推送到某种工件存储库。然后可以使用诸如 ChatOps 风格的斜杠命令之类的工具将工件部署到各种环境中以触发 deloy。例如,该工具还可以进行检查以确保不会跳过测试环境。最后,将工件提升为生产。

因此,对于您使用 GitHub Actions 的用例,我的建议是:

  1. Push tomaster创建构建工件并自动将其部署到开发环境。
  2. 开发中的测试
  3. 通过使用斜杠命令部署到生产环境来提升工件。操作slash-command-dispatch将帮助您解决此问题。

推荐阅读