如何在 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
以下是关于我们设置的一些要点:
- 没有 Gitlab Flow 中建议的功能分支
- 所有工作都直接提交给 master。
- 每个开发人员都有自己的 fork,他们在开始每个工作项之前对其进行 rebase
- 开发人员对每个工作项进行频繁提交,并在完成后发出包含许多提交的合并请求。
- 测试人员从 master 拉取工作并进行测试。因此,测试人员可能有来自两个不同合并的提交,但他可能一次只测试一个。
所以假设我几天前从 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
希望对您有所帮助。
我正在评估使用 Gitlab 流程的生产分支的可能性,如下所示: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/workflow/gitlab_flow.md#production-branch-with-gitlab-flow
以下是关于我们设置的一些要点:
- 没有 Gitlab Flow 中建议的功能分支
- 所有工作都直接提交给 master。
- 每个开发人员都有自己的 fork,他们在开始每个工作项之前对其进行 rebase
- 开发人员对每个工作项进行频繁提交,并在完成后发出包含许多提交的合并请求。
- 测试人员从 master 拉取工作并进行测试。因此,测试人员可能有来自两个不同合并的提交,但他可能一次只测试一个。
所以假设我几天前从 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
希望对您有所帮助。