具有 GitHub 流程的开发和生产环境

Nat*_*ury 12 github branching-and-merging git-flow github-actions github-flow

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

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

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

我能想到的唯一想法是:

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

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

您认为我的想法合理吗?如果不合理,您有何建议?

编辑:

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

pet*_*ans 11

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

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

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

  1. 推动master创建构建工件并自动将其部署到开发环境。
  2. 开发中测试
  3. 通过使用斜杠命令部署到生产环境来升级工件。动作斜线命令调度将帮助你解决这个问题。