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

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

请教下各位大佬:

6982 次点击
所在节点    程序员
34 条回复
virusdefender
2020-08-27 11:10:58 +08:00
ci 中加一项跑你的验证,依赖 staging 那一步,跑完了整个 ci 才结束
css3
2020-08-27 11:14:10 +08:00
@virusdefender
加了啊,问题在于,现有顺序是先提交后才触发执行 ci 。应该要先执行 ci,验证结果通过后才能 push 或 merge
Chingim
2020-08-27 11:18:47 +08:00
maichael
2020-08-27 11:19:51 +08:00
锁分支,不给直接推送,然后手动在界面上提交合并请求
AngryPanda
2020-08-27 11:21:27 +08:00
走 MR,不要给权限直接客户端操作
virusdefender
2020-08-27 11:31:20 +08:00
@css3 你们直接 push master ? 应该用 merge request
NauxLiu
2020-08-27 11:34:01 +08:00
1. 将 master 设置为 protect branch,不允许直接 Push
2. 打开项目的 Merge Request 设置里的 Pipelines must succeed
css3
2020-08-27 11:34:56 +08:00
@virusdefender 有 MR,但大家不遵守规范,一股脑提过来,要人工检查,索性就写了个脚本自动验证,这不是没按预计想的那样运行么😂😂
wxsm
2020-08-27 11:42:02 +08:00
我刚好也在搞这个。目前在尝试 gitlab 前面再对接一个 gerrit
wxsm
2020-08-27 11:45:46 +08:00
但是不太顺利,怎么说呢,gerrit 能 push 的,人也能,人不能 push 的,gerrit 也不能。ce 没有评审功能很蛋疼。
css3
2020-08-27 11:57:18 +08:00
@NauxLiu
2 这个,是大家各自的分支上跑各自的 pipelines? 跑失败的时候,提不了 mr 吗?
css3
2020-08-27 11:58:11 +08:00
@wxsm 有好的方案,分享一下哈😂😂
NauxLiu
2020-08-27 12:01:56 +08:00
@css3 #11 是提交的 PR 对应的 Pipeline 如果没通过不能被 merge,
taogen
2020-08-27 12:04:20 +08:00
The branch you are building and testing on is only for building and testing.
On your dev branch if any tests fail you just fix it and push it again.
skyadmin
2020-08-27 12:09:24 +08:00
master 分支设为保护分支,不允许任何人,直接推送代码至 master 分支。就可以让大家必须都在 merge request 了。
skyadmin
2020-08-27 12:10:09 +08:00
项目的 settings - repository - Protected Branches 里设
skyadmin
2020-08-27 12:14:42 +08:00
然后勾选 settings - General - Merge request,勾选 Only allow merge requests to be merged if the pipeline succeeds 。
和#7 说的一样,只是给了下具体操作路径。
1109599636
2020-08-27 12:31:20 +08:00
我的理解是个人提交到个人分支,然后个人分支跑 ci 各种流程,ci 通过了才可以 merge 到公共分支吧。如果在 commit 之前就做检查可以用 pre-commit hooks
StarUDream
2020-08-27 12:34:54 +08:00
目前用的就是 15-17 楼所说的方法,目测可以解决楼主问题。
594duck
2020-08-27 12:41:58 +08:00
@StarUDream 楼主回复说不想一个个看就想自动化跑跑测测。

这种敏捷式开发,后面要吃瘪的。

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

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

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

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

© 2021 V2EX