文章目录
- 1.Linux创建秘钥
- 2.Gerrit创建用户
- 3.Jenkins配置Gerrit Trigger
- 4.Jenkins创建工程test_gerrit_sonarqube
- 4.1 General
- 4.2 源码管理
- 4.3 构建触发器
- 4.4 构建环境
- 4.5 构建
- 4.6 构建后操作
- 5.项目提交代码
- 5.1 commit
- 5.2 push
- 5.3 Gerrit
- 6.后续
1.Linux创建秘钥
cd /var/lib/jenkins
如果没有 .ssh 目录,需要手动创建
mkdir .ssh
创建秘钥
ssh-keygen -m PEM -t rsa -C “zhangsan@xxx.com” -f /var/lib/jenkins/.ssh/id-rsa
修改权限
chmod -R 777 .ssh
2.Gerrit创建用户
Gerrit创建 zhangsan 用户
[root@gerrit /]# htpasswd -m /gerrit.password zhangsan
使用 zhangsan 用户 登录 Gerrit 设置 SSH Keys
填写内容是 /var/lib/jenkins/.ssh/id-rsa.pub 里面的内容
HTTP Credentials,CREATE NEW PASSWORD,此处秘钥有很大用处,要牢记
SL1rsmf6WIcvnYqEgHhajS2cZL+IqrLLEJQ8OA2dJg
授权用户 zhangsan 对 test1 项目有权限
3.Jenkins配置Gerrit Trigger
Gerrit Trigger – Add New Server –
4.Jenkins创建工程test_gerrit_sonarqube
4.1 General
丢弃旧的构建
策略:Log Rotation
保持构建的天数:180 # 此项可以自由配置,不做强制
保持构建的最大个数:180 # 此项可以自由配置,不做强制
4.2 源码管理
Multiple SCMs
Git
Repositories
Repository URL: 填写用户 zhangsan 对应的HTTP 连接地址:http://zhangsan@192.168.120.11:8080/a/test1
Credentials: 填写 zhangsan 用户和对应的HTTP 秘钥SL1rsmf6WIcvnYqEgHhajS2cZL+IqrLLEJQ8OA2dJg 创建的凭据
Refspec: 填写 refs/changes/*:refs/changes/*
Branches to build
指定分支(为空时代表any):填写 $GERRIT_REFSPEC
源码库浏览器:(自动)
Additional Behaviours
Strategy for choosing what to build
Choosing strategy: 填写 Gerrit Trigger
检出到子目录
仓库的本地子目录:填写 ${WORKSPACE}/test ,就是Gerrit仓库中的代码clone到本地存放路径,如果此处是固定值,代码每次就会拉取最新的代码,如果是一个变量,则每次拉取代码都会拉取完整项目代码,所以,建议此处是一个固定值,这样每次只会拉取新的代码
高级的克隆行为
选中 Fetch tags
克隆和拉取操作的超时时间(分钟):填写 60 ,如果项目代码量过大,需要填写,否则jenkins任务执行时,拉取代码超时
4.3 构建触发器
Gerrit event
Gerrit Trigger
Choose a Server:填写 Jenkins 设置的 Gerrit Trigger 名称:Gerrit-2
Trigger on:此选项就是Gerrit触发Jenkins任务的条件
Comment Added Verdict Category:Code Review
Value:2 含义就是 Gerrit +2 时,触发Jenkins任务执行,每当+2时就执行一遍,别的方式不执行
Dynamic Trigger Configuration
Gerrit Project
Type: Plain # 选中
Pattern: test1 # 填写项目名称
Branches
Type:Path # 如果Pattern选中所有分支**,则此处必须选中Path,否则无法触发Jenkins任务执行
Pattern:** # 表示选中该项目所有分支
4.4 构建环境
没有修改
4.5 构建
ls -l ${WORKSPACE}/test
4.6 构建后操作
没有修改
5.项目提交代码
5.1 commit
5.2 push
5.3 Gerrit
此时没有触发Jenkins任务执行,当在Gerrit中对代码 +2 操作
Jenkins任务会执行,可以点击 g34,跳转到Gerrit提交的代码展示页面
当Jenkins任务执行完毕之后,Gerrit可以看到提示信息
6.后续
以上步骤就完成了Jenkins和Gerrit两个工具之间的打通。
后续如果想做 SonarQube扫描、单元测试等等,即可在构建或者构建后操作步骤进行设置
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)