gitlab ci 如何在提交到 master 分支前进行验证,通过验证才能 merge 或 push

2020-08-27 11:09:02 +08:00
 css3

请教下各位大佬:

6713 次点击
所在节点    程序员
34 条回复
nightwitch
2020-08-27 12:57:37 +08:00
禁止提交到 master,要提交到 master 发 pull request 。发 pull request 的时候自动触发 CI 测试,CI 测试不过不允许合并
zmxnv123
2020-08-27 13:04:15 +08:00
git hook?
Rwing
2020-08-27 13:09:47 +08:00
@nightwitch 这个是正解
Sapp
2020-08-27 13:43:38 +08:00
coommit 可以添加钩子啊,前端就有个叫哈士奇的,不通过 commit 都没办法提交
phy25
2020-08-27 14:21:43 +08:00
比较优雅的办法,自动提交 MR:

https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html

https://docs.gitlab.com/ee/user/project/push_options.html

git push -o merge_request.create -o merge_request.target=my-target-branch -o merge_request.merge_when_pipeline_succeeds
janxin
2020-08-27 15:21:35 +08:00
禁止 master 分支直接提交

设置 Protected Branches

合并 MR 需要在 pipelines 执行成功

设置 Only allow merge requests to be merged if the pipeline succeeds
maltoze
2020-08-27 15:26:40 +08:00
gen900
2020-08-27 15:33:51 +08:00
gitlab 里 没有通过 pipeline 的 merge request 不让合并的。就是你 push 后就在做 ci 了如果失败 mr 不让合并
wshcdr
2020-08-27 15:38:06 +08:00
同意 MR 的做法
otakustay
2020-08-27 20:12:44 +08:00
按照楼主的要求,其实你一开始就应该用 gerrit 而不是 gitlab
dddd1919
2020-08-27 23:10:20 +08:00
提 git 的人不按规范执行,总有方法绕过你的设置,不统一提交规范,其他的就别扯了
用 git 靠的是约定,不是靠各种限制,如果大家都不遵守约定,那就找人专门来干这事,或者换个工具吧。
统一 git flow,再用 ci 才能达到比较好的效果,比如配置 ci 在 feature 上执行,禁用 remote push master,合并 mr 前要 ci 通过,ci 同时配置 build 和 run test 等等
icylogic
2020-08-28 06:55:19 +08:00
我们 master/develop 任何人都不能推的,所有更改都要通过其他分支提 mr,mr 只能由 reviewer 点合并,如果 ci pipeline 挂掉或者有 conflict,合并按钮都是灰的没法点(可以选项里改)
wxsm
2020-09-23 15:27:45 +08:00
我通过 gitlab 的 webhook 和 api 自己实现了一套评审系统,详见: https://wxsm.space/posts/2020-09-23-gitlab-ce-code-review-bot.html
dengxuejiu
2022-01-12 16:07:41 +08:00
亲测可用,在 merge 之前做代码规范检查等工作还是挺好用的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/701834

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX