基于GitLab的持续集成机制
基于GitLab的持续集成机制
介绍
一般代码提交的流程
- 开发人员从远程中央仓库(例如DEV)拉取最新代码
- 在本地创建自己的分支
- 在自己的分支完成开发
- 完成一个功能并且通过自测后,提交本地版本库(commit到本地分支)
- 在本地版本库推送到远程中央仓库自己的分支(push到远程自己分支)
- 在远程中央仓库自己的分支中,提交
Merge Request
(合并请求,简称MR
),源分支选择为自己的分支,目标分支为DEV
分支,提交MR
- 等待有权限的人员进行
MR
操作
完成集成测试的步骤
- 从远程中央仓库拉取到合并后的
DEV
代码 - 执行项目代码的打包(如有单元测试,打包过程中可以运行)
- 启动服务
- 拉取测试代码
- 运行测试
通过jenkins
自动完成GitLab集成测试
- 安装
jenkins
的GitLab
插件 : jenkins插件管理中下载 - 建立服务启动
job
: 创建一个job
(自由风格便可) - 在项目代码中建立与
jenkins
的hook
关联- 获取一个gitlab项目的setting权限,通过该权限可以获取到项目的hook值
- 在
jenkins
创建job
时选择构建触发器->Build when a change is pushed to GitLab
- 然后在细分选项中选择自己需要的一些触发事件,比如
Push EVENTS(推送)
- 建立测试
job
作为服务启动job
的子job
:创建job
成功后验证如果进行代码PUSH
操作是否会触发jenkins
中job
的执行
注意,这里的jenkins服务需要能够访问到GitLab
配置hook的详细操作
- 在
job
构建中找到Build when a change is pushed to GitLab webhook URL:XXXXX
- 其中
xxx
是这个job
的地址
- 其中
- 往下看,点开高级选项,看到一个Secret_token 的生成按钮,生成token,然后保存。
- 然后回到
GitLab
项目中,点击设置,选择webhook
,然后填写[URL:job地址] [Secret token:刚刚生成的token]
- 在
GitLab
中选择触发事件 - 保存,配置结束
总结
通过在Jenkins
,gitlab
中配置触发事件,使得当gitlab
仓库发生PUSH
,COMMIT
等操作时同步驱动job
的执行。