GitLab + Jenkins实现CI
bmj

Jenkins设置Build Triggers

目的是为了能够使jenkins被触发

  • 在工程下点击configure
  • 按以下选择进行勾选(基本为默认设置),点击Advanced…
  • 点击Generate,会生成一个Secret token,这个token将被作为触发jenkins的认证,后面需要将这个token配置在GitLab中

Jenkins配置部分结束


GitLab设置

首先设置jenkins访问权限,确保jenkins有权限pull代码,才能build

  • 用admin账号登录GitLab,并点击账号设置下的Access Tokens
  • 点击Create personal access token
  • 可以设置有效期限,再勾选api权限
  • 点击create,这时就会有一条access token,记录下access token 并配置到jenkins全局设置中

代码提交在GitLab上,设置提交时的触发条件(比如在提交到dev分支时触发),去触发jenkins build

  • 进入需要配置CI的项目,点击settings下的Webhooks
  • 将jenkins项目地址与在jenkins生成的Secret token填入,勾选Push events(表示在GitLab触发了push是会调用jenkins build),也可以输入想要触发的分支(其他分支push将不会触发jenkins build)
  • 点击 Add webhook
  • 可以看到已经激活了webhook

GitLab配置部分结束


CI持续集成(Continuous Integration)

在每次提交活着合并代码之后,可以实现自动化的构建、自动化测试等,大大省去了合并代码之后开发人员的重复手动构建。本篇只介绍了CI的自动化构建部分。

CD持续交付 / 部署(Continuous Delivery / Continuous Deployment)

当然还有CD,作为CI的后续工作。

例如,如果项目的部署方式为docker部署并且将部署包做了外部的文件映射,那么在jenkins的build脚本的最后添加docker的restart命令,那么在开发人员提交完代码之后,不用做任何的操作,几分钟之后便能让代码生效了。

 Comments