关于CI/CD的实践(二 提交阶段流水线)
提交阶段流水线
触发点:git上对应分支有代码commit,触发jenkins启动本次流水线
需要实现的目标
- Jenkins上进行构建
- Jenkins+Sonarqube进行质量扫描
- 将本次Jenkins上的执行状态反馈到git上
- 将Sonarqube质量扫描的结果以邮件发送状态到负责人(项目全员)
前提条件:已经安装jenkins 、 gitlab 和 Sonarqube。
一、Jenkins与GitLab集成
- jenkins 与 gitlab 集成的作用:gitlab有代码进行提交时能触发Jenkins的任务。Jenkins的任务执行后的结果能反馈到gitlab上。
- jenkins 与 gitlab 集成的方式:以api token方式互通,以Webhook方式触发
1. 登录gitlab,获取api token
点击用户头像-Settings-Access Tokens(建议登录一个对所有仓库都有拉代码权限的账户)
往下翻到Create personal access token
,点击创建token:
复制好token值,保存好,稍后用于Jenkins上:
2. 登录Jenkins,配置api token
系统管理-系统配置
点击后,往下翻到Gitlab
进行配置:
先添加刚刚的token:
3. 登录jenkins,添加任务
http://jenkins.vonedao.com/project/sonarqube-vonedao-tenant-business
保存下这个路径
选择你需要的规则:
选择高级
,创建token,用于提供给gitlab对应的仓库进行webhook触发时使用:
复制这个token,保持下来,等会需要粘贴到gitlab上去。
pom.xml文件要写对路径,去问开发或者自己看下源代码:
下面这个配置主要是用于给git进行反馈Jenkins这个任务的最后结果
4. 登录gitlab,配置webhook地址
以vonedao-tenant-business仓库为例,打开仓库后,找到Settings
,选择Integrations
将Jenkins上添加sonarqube-vonedao-tenant-business任务时保存下来的地址和token粘贴到gitlab上vonedao-tenant-business仓库的webhook配置,如图:
5. Jenkins与GitLab集成验证:
点击Push events
,进行模拟代码提交的动作,测试触发Jenkins的动作。我们登录到Jenkins上,可以看到,已经自动触发了任务:
等一会后,Jenkins上完成了本次任务:
登录到gitlab上看看Jenkins的反馈情况:
二、Jenkins与Sonarqube集成
待补充
三、Jenkins邮件发送
待补充