Git分支设计与CI/CD

时间:2024-05-21 22:13:09

说明

之前我们搭建了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以外分支的权限)

Git分支设计与CI/CD

Webhook设置

勾选Push events和Merge request events

Git分支设计与CI/CD

Jenkins设置

进过测试Accepted merge request events会产生一次push events,所以我们只勾选一个就可以了,防止多次构建

Git分支设计与CI/CD

Git分支设计与CI/CD

测试

Owner发起一次merge request,把dev合并到master,合并后会在Jenkins看到一次构建被触发了

Git分支设计与CI/CD

Git分支设计与CI/CD