最近响应公司的政策,终于将N个
SVN
的项目全部迁移至gitlab
。gitlab
是公司内部搭建的一个私有的仓库,迁移至gitlab
后,为了更规范化,和小伙伴们制定了一些规则:
- 默认保护的分支是
master
和develop
分支 - 任何人不允许在
master
和develop
分支进行开发提交代码(当然gitlab
有设置,master
和develop
是不允许进行提交代码的) - 所有的开发任务,开发人员另起一属于自己的分支进行需求开发,开发完成后将当前分支推送到远程
- 开发完成后,需求开发人员在
线上发起代码合并请求
- 管理员收到合并请求后,进行
CodeReview
,对于合格的代码进行确认合并至develop
分支 - 项目所有的需求开发完成,由管理员将所有代码合并至
master
进行项目构建
1. gitlab项目创建
- 进入
gitlab
,点击新建项目
myDemo
- 输入项目名称及项目描述,完成创建此时仓库是空的
Git
全局设置
git config --global user.name "UU"
git config --global user.email "UU@qq.com"
- 初始化本地仓库
git clone http://***.***.**.**:9999/group/myDemo.git
cd myDemo
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
- 创建
develop
分支,并推送到origin
git checkout -b develop
git push origin develop
- 此时远程已经有了
master
和develop
分支 - 设置默认分支为
develop
分支 - 将
develop
设置为保护分支,并将master
和develop
的允许推送到
设置为No one
设置
No one
主要是以要求每开发人员都提交合并请求, 将更改提交到受保护的分支
2. gitlab与Jenkins自动构建
- 新建一个
Jenkins
的项目
2.1 常规配置
添加构建参数 git Parameter
, 可以在主动构建的时候,选择需要构建的分支
2.2 配置源码管理
选择git
,将gitlab
仓库的地址复制到这里,并添加git
账号密码
2.3 构建触发器
通过gitlab
的合并请求事件触发Jenkins的自动构建
首先,在Jenkins
配置触发器,选择Build when a change is pushed to GitLab
然后,在gitlab
进行集成配置, 进入设置 - 集成
将Jenkins
处的 GitLab webhook URL: http://*.*.*.*:9999/jenkins/project/myDemo
复制到该链接(URL)
处, 将Jenkins
处的Secret token
复制到安全令牌
处
并选择合并请求事件
, 然后添加钩子完成配置
这个时候可以在gitlab
选择Merge requests events
进行模拟合并请求事件
2.4 构建环境
Jenkins
在构建的时候要进行项目依赖的安装,所以Jenkins
的服务器环境必须要nodejs
,并且Jenkins
要进行nodejs
配置
2.5 构建
这里构建我是通过windows batch command
命令进行构建的
npm i
npm run bulid
2.6 构建后的操作
做构建后的自动部署之前,需要进行相应的配置:
- 需要部署的服务器做好文件夹共享
- 需要在
Jenkins
上配置部署服务器的信息 因为我当前的Jenkins
是window系统,所以我选择的是send build artifacts to a windows share
(需要Jenkins
安装插件Publish over CIFS
) 接下来需要将Jenkins
构建后的文件部署文件放到指定服务器的指定文件夹内,完成部署
到此gitlab和Jenkins的配置就完成了~~
3. 自动构建验证
- 在
Gitlab
进行Merge
操作 - 在
Jenkins
会发现项目已经开始构建
文章的最后
微信关注公众号【前端UU】
,定期阅读好文哟~
原创不易,转载请注明作者和链接哟~