说明
之前我们搭建了Jenkins(戳->使用Jenkins部署K8s项目)进行CI/CD,但是还有一个问题,如果我们一直基于master分支进行开发,并且Jenkins构建也是由于master分支变化而进行CI/CD的话会导致发布变得非常的频繁,每一个人都有发布的权限也会导致项目非常不稳定,这个时候我们就需要设置Git分支、GitLab的用户权限和Jenkins的构建策略来综合调整CI/CD的整个过程了,下面提供一种一般项目的Git分支设计和Jenkins的构建策略
快速开始
目标
项目负责人(Owner)进行master merge后,触发Jenkins进行构建发布版本,其余人的push、merge不进行操作
Git分支设计
下面是一个Git分支模型,一般来说项目的master分支代表了线上发布的版本,dev分支则是我们日常的开发分支,feature分支用于开发新功能,hotfix分支紧急修复线上bug,最新的master节点表示最新的版本,并且master分支只进行merge操作且是由具有merge权限的人进行合并的(这一点可以通过GitLab的权限控制做到,例如Owner和Maintainer有权限merge master,Developer具有master以外分支的权限)
Webhook设置
勾选Push events和Merge request events
Jenkins设置
进过测试Accepted merge request events会产生一次push events,所以我们只勾选一个就可以了,防止多次构建
测试
Owner发起一次merge request,把dev合并到master,合并后会在Jenkins看到一次构建被触发了