如何在 gitlab 中以最小的努力从 master 部署到生产环境?

How to deploy from master to production with minimal effort in gitlab?

我正在评估使用 Gitlab 流程的生产分支的可能性,如下所示: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/workflow/gitlab_flow.md#production-branch-with-gitlab-flow

以下是关于我们设置的一些要点:

所以假设我几天前从 master 创建了一个生产分支。

X1--X2--X3(master)
        |
        (prod)

之后 Ann 和 Barry 提出了两个已被接受的合并请求

X1--X2--X3--A1--A1--A3-Am--B1-B2-Bm(master)
        |
        (prod)

Am 和 Bm 代表 Ann 和 Barry 的个人合并提交

现在测试人员测试并确定 Ann 的更改。

现在我必须将 Ann 的提交移至生产环境。什么是最巧妙的方法?我所说的最简洁是指:开发人员和管理员的工作量最少。理想情况下,我更愿意采用 Am 并将其合并到生产中,但 Gitlab 只给我一个挑选选项而不是完全合并。

像这样:

X1--X2--X3--A1--A1--A3-Am--B1-B2-Bm(master)
                       |
                     (prod)

或这个

X1--X2--X3--A1--A1--A3--Am--B1-B2-Bm(master)
        |
        X3'-A1'-A1'-A3'-Am'(prod)

现在让我回顾一下这个场景。测试人员在 Ann 的代码中发现了一个错误并请求修复。安做了,测试人员确定了修复。

X1--X2--X3--A1--A1--A3--Am--B1--B2--Bm--A4--Am2(master)

现在我要

X1--X2--X3--A1--A1--A3--Am--B1--B2--Bm--A4--Am2(master)
        |
        X3'-A1'-A1'-A3'-Am'-A4'-Am2'(prod)

下一位测试员确定了 Barry 的代码,所以我将 Barry 的更改合并到生产中

X1--X2--X3--A1--A1--A3--Am--B1--B2--Bm--A4--Am2(master)
        |
        X3'-A1'-A1'-A3'-Am'-A4'-Am2'--B1'--B2'--Bm'(prod)

这样可行甚至实用吗?

跟踪 pending/missing 生产变更的最佳方式是什么?我想使用 Gitlabs 的“X commits behind master”功能来跟踪这个(例如,在 sprint 结束时,如果我落后 0 个提交,这意味着我在这个 sprint 中有所有更改)。或者有更好的方法吗?

抱歉,如果我的问题看起来太宽泛,但我真的很困惑和迷茫。

感谢任何可以让我的生活更轻松的指导。

我对 gitlab prod 工作流程有同样的反思。
用Gitlab CE实现这个工作流貌似比较难

我想做这个:

 R1-----------R2--R3
 /           /   /
A---B---C---D---E---F ← master
             \
              E---F---G ← new-feature

事实上,Gitlab 只允许将整个分支 master 合并到 prod 或 cherrypick(坏主意)。

所以我决定使用带有标签的(不完美的)生产工作流程。

R1          R2  R3   
A---B---C---D---E---F ← master
             \
              E---F---G ← new-feature

希望对您有所帮助。