Skip to content

基于GitLab的持续集成机制

基于GitLab的持续集成机制

介绍

一般代码提交的流程

  • 开发人员从远程中央仓库(例如DEV)拉取最新代码
  • 在本地创建自己的分支
  • 在自己的分支完成开发
  • 完成一个功能并且通过自测后,提交本地版本库(commit到本地分支)
  • 在本地版本库推送到远程中央仓库自己的分支(push到远程自己分支)
  • 在远程中央仓库自己的分支中,提交Merge Request(合并请求,简称MR),源分支选择为自己的分支,目标分支为DEV分支,提交MR
  • 等待有权限的人员进行MR操作

完成集成测试的步骤

  • 从远程中央仓库拉取到合并后的DEV代码
  • 执行项目代码的打包(如有单元测试,打包过程中可以运行)
  • 启动服务
  • 拉取测试代码
  • 运行测试

通过jenkins自动完成GitLab集成测试

  • 安装jenkinsGitLab插件 : jenkins插件管理中下载
  • 建立服务启动job : 创建一个job (自由风格便可)
  • 在项目代码中建立与jenkinshook关联
    • 获取一个gitlab项目的setting权限,通过该权限可以获取到项目的hook值
    • jenkins 创建job时选择构建触发器->Build when a change is pushed to GitLab
    • 然后在细分选项中选择自己需要的一些触发事件,比如Push EVENTS(推送)
  • 建立测试job作为服务启动job的子job:创建job成功后验证如果进行代码PUSH操作是否会触发jenkinsjob的执行

注意,这里的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中选择触发事件
  • 保存,配置结束

img.png img.png img.png

总结

通过在Jenkins,gitlab中配置触发事件,使得当gitlab仓库发生PUSH,COMMIT等操作时同步驱动job的执行。