jenkins整合gerrit

背景

公司项目之前使用jenkins整合了gitlab,后面代码迁移到gerrit,所以需要修改jenkins配置。下面就简单的介绍一下jenkins如何整合gerrit。

环境

服务器:linux

环境:docker、jenkins

代码仓库:gerrit

前提

docker、jenkins安装,自行百度。

gerrit仓库账号密码,自行申请。

流程

gerrit仓库访问权限配置

1、在Gerrit平台注册一个jenkins用户,然后设置一个SSH key。

2、Gerrit Web页面,进入Browse > Groups > Service Users,将jenkins 用户添加到这个分组中。(Gerrit v3.3之前的CI组名称为Non-Interactive Users)

3、Gerrit Web页面,Browse > Repositories > 仓库名称 > Access > Edit

  • Reference: refs/*
    • Read: ALLOW for Service Users
  • Reference: refs/heads/*
    • Label Code-Review: -1, +1 for Service Users
    • Label Verified: -1, +1 for Service Users

4、需要在gerrit配置公钥。因为我是用的docker,需要进入jenkins容器:docker exec -it jenkins bash,创建ssh密钥:

java 复制代码
$ ssh-keygen -m PEM -t rsa -C "邮箱地址"
ssh-keygen -m PEM -t ed25519 -C "邮箱地址"

生成密钥的路径:

java 复制代码
/var/jenkins_home/.ssh/id_rsa
/var/jenkins_home/.ssh/id_ed25519

可以使用docker cp指令,复制出公钥(/var/jenkins_home/.ssh/id_rsa.pub)。

docker cp命令参考:

将公钥配置到gerrit的ssh里面。如下,私钥配置在jenkins里面,见下文截图。

jenkins配置

首先需要在jenkins的系统管理--插件管理,下载Gerrit Trigger插件,下载完成后。配置新gerrit服务。

1、

2、

3、

输入后,可以test一下,是否现实success。

新建item

1、

备注一下:如果项目需要引入有变动的jar,还是建议构建maven项目,自由风格项目不会加载你变更后的jar内容。

2、

3、

4、

5、

6、

7、

8、

构建的docker容器。

java 复制代码
#/bin/bash
# 注意 其实在这里输入的命令,就是在服务器上的命令,我们所处于的位置就是当前登录用户的根目录下 

echo ">>>>>>>>>>>>>cd 到宿主机映射 Jenkins 的项目路径下>>>>>>>>>>>>>"
cd xx

#服务名称
SERVER_JAR=xx

#查询进程,并杀掉当前jar/java程序
pid=`ps -ef|grep $SERVER_JAR| grep -v grep | awk '{print $2}'`

kill -9 $pid

echo ">>>>>>>>>>>>>$pid进程终止成功>>>>>>>>>>>>>"

echo ">>>>>>>>>>>>>停止容器>>>>>>>>>>>>>"

docker stop xx

echo ">>>>>>>>>>>>>删除容器>>>>>>>?>>>2>22"

docker rm xx

echo ">>>>>>>>>>>>>删除镜像>>>>>>>>>>>> >"

docker rmi xx:1.0

echo ">>>>>>>>>>>>>制作镜像>>>>>>>>>>>>>"

docker build -f Dockerfile -t xx:1.0  .


echo ">>>>>>>>>>>>>启动容器>>>>>>>>>>>>>"

docker run -p 8891:8891 -p 8892:8892 --name athena -d -v /xx:/athena/tmp -v /usr/share/zoneinfo:/usr/share/zoneinfo xx:1.0

echo ">>>>>>>>>>>>自动部署结束>>>>>>>>>>>>>"

最后执行就可以了。

相关推荐
guo_wen_qiang2 分钟前
云服务器nacos搭建-集群&持久化
java·运维·服务器
江江爱编程33 分钟前
java零基础保姆级教学01
java·开发语言
96245634 分钟前
餐饮 SaaS 优惠券系统架构演进(三):优惠计算引擎——商品级计价、冲突策略与优惠分摊
java·数据库·spring boot
vx_Biye_Design37 分钟前
expressDeepSeek社团咨询助手的学生社团管理系统60746-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·python·课程设计·express
vx_Biye_Design1 小时前
springboot宠物领养与救助平台64334-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·mysql·课程设计·宠物
泡茶喝茶写代码1 小时前
A股量化数据工程:从 REST 接口到策略信号(第 5 篇):板块成分股映射与对齐
java·python·股票数据api·股票数据·股票数据api接口·股票api数据接口·股票量化数据接口
vx_Biye_Design1 小时前
django就业信息推荐系统61953-计算机课程设计、毕业设计
java·vue.js·spring boot·python·架构·django·课程设计
知守观1 小时前
HTML 转 PDF 方案实战:iTextPDF 与 wkhtmltopdf 踩坑复盘,附 Flying Saucer / openhtmltopdf 选型对比
java·后端
2601_962071571 小时前
类变量和全局变量的隔离性有什么区别?
java·开发语言·jvm
海绵宝宝转agent1 小时前
LeetCode100 LRU缓存思路讲解
java·开发语言·缓存