https://www.jianshu.com/p/5b6a338ff18c
官方配置:
https://wiki.jenkins.io/display/JENKINS/Gerrit+Trigger#GerritTrigger-TriggerConfiguration
Gerrit+Jenkins
https://blog.csdn.net/weixin_34019929/article/details/89869559
https://www.cnblogs.com/kevingrace/p/5651447.html
Gerrit的原理:
https://blog.51cto.com/muyusen/2438406
git commit 触发的hook:
https://www.jianshu.com/p/b532d62da0f1
一、Jenkins安装完成后,在管理Jenkins里,安装两个插件
1、Gerrit Trigger:通过Gerrit事件触发Jenkins构建
2、Role-based Authorization Strategy:可以设置用户组的权限以及工程的权限,最直接的概念就是,可以设置某个用户只可以read、build某些工程。
二、在Jenkins首页,管理Jenkins -> Gerrit Trigger,
1、添加gerrit服务器
2、解决jenkinsd的SSH Keyfile问题
在用户下生成SSH key
$ssh-keygen
一路回车就行,在用户根目录下生成SSH Key,公钥和私钥在~/.ssh文件下
在/var/lib/jenkins下创建.ssh目录
$sudo mkdir .ssh
将根目录下.ssh目录下的SSH key复制到/var/lib/jenkins的.ssh下,并更改所属用户
$ls ~/.ssh/
id_rsa id_rsa.pub
将根目录下的.ssh里的SSH Key复制到/var/lib/jenkins/.ssh里
sudo cp ~/.ssh/* /var/lib/jenkins/.ssh
更改/var/lib/jenkins/.ssh所属用户
sudo chown -R jenkins:jenkins .ssh/
sudo chmod 755 ./ssh/*
查看.ssh更改后的所属用户和属性:
drwxr-xr-x 2 jenkins jenkins 4096 Jan 7 20:16 .ssh
-rwxr-xr-x 1 jenkins jenkins 1679 Jan 7 20:16 id_rsa
-rwxr-xr-x 1 jenkins jenkins 420 Jan 7 20:16 id_rsa.pub
在gerrit的特殊账户下(我们开了一个团体账号),将公钥pub添加到该用户下,并测试是否能通过SSH连接
注意填写Username,不写的话会出现Auth fail的报错
Connection error : com.jcraft.jsch.JSchException: Auth fail
3、测试Gerrit Trigger触发
创建一个任务,在任务的配置里,在构建触发器里选择Gerrit event,
Pipeline脚本测试:
node {
stage('Build') {
echo "------------------------success test!"
}
}