【问题标题】:Git Branches & Environments Development Process for CI/CD [closed]CI / CD的Git分支和环境开发过程[关闭]
【发布时间】:2021-01-25 16:56:43
【问题描述】:

我有一个“开发过程”问题,希望能得到一些经验和意见。

我正在与具有典型 devstagingproduction 环境的公司合作。有十几个不同的 git 存储库和一个与 CI/CD 的每个环境相关的分支。

每天有大约 15 名开发人员在跨分支机构处理任务。 dev env 用于 QA,staging 是随时可部署的生产环境。这都是正常的业务,环境没有问题。

这里是棘手的地方,将代码与 git 从一个环境合并到另一个环境的方向和过程:

dev 永远不会直接合并到staging。当前的过程是使用cherry-pick从dev->staging获取代码,这样dev环境中QA步骤中的其他开发人员就没有任何东西被合并到staging中不是。

这是一个非常混乱/危险的过程,IMO,因为如果您 [开发人员] 将您的提交从 dev 挑选到 staging 中,那么您可能会错过提交,您可以想象由此带来的头痛!


我们可以在环境建模中采用更好的流程吗?

【问题讨论】:

  • 一些额外的上下文会有所帮助:从登台到生产分支的流程是什么? dev 分支是如何填充的 - dev 是从生产分支定期重新创建的一次性分支,还是稍后将生产合并回 dev 中?特性分支是否与 PR 合并到 dev 中?是否可以将这些相同的分支合并到 staging 中,而不是挑选每个提交?
  • 这是基于意见的,所以你会得到很多不同的答案,但对我来说,我更喜欢这里描述的 github-flow 版本:scottchacon.com/2011/08/31/github-flow.html。如果你今天搜索 github-flow,你会在这里找到一个很好的交互式版本:guides.github.com/introduction/flow 但它们基本上是一样的。该博客文章对每个步骤都进行了更多描述,并解释了有关 git-flow 的一些好处/抱怨。

标签: git continuous-integration continuous-deployment agile


【解决方案1】:

我知道这是基于意见的,可能不是每个人/情况的正确答案。 (感谢@adam 提到 git-flow。)

环境:

  • 生产
  • 分期
  • 开发

Staging 旨在成为一个稳定的发布/环境,可以在任何时间点部署到 master。 Devstaging 之前的 QA 和 dev 环境。

Git 分支:

  • 大师(生产)
  • 分期
  • 开发
  • feature/[name] bugfix/[name] 等(遵循 git-flow 模式)

开发过程/流程: 为开发人员分配了一张票。开发人员从staging 分支签出一个新的功能/错误修复分支。开发人员在特性/错误修复分支和 MR/PR 上完成了他的工作到 dev 分支,因此它可以在 dev 环境中进行 QA。票证通过 QA 后,开发人员会使用 feature/bugfix -> staging 打开 MR/PR。 feature/bugfix合并到staging后可以丢弃。

需要定期更新分支机构的内务管理 - 最重要的是,dev 需要经常以staging 为基础,以保持 QA 环境的健康和最新。

【讨论】:

    猜你喜欢
    • 2022-01-18
    • 1970-01-01
    • 2021-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多