JiuyeXD's Blog
九叶
九叶博主

越努力 越幸运

登录
夜间

Jenkins + Gitee 自动构建项目

1.安装Jenkins

1.1 下载rpm包(rpm包网址)

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

1.2 导出密钥

若之前已从Jenkins导入过密钥, "rpm--import" 将失败, 请忽略, 继续执行1.3)
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

1.3 安装Jenkins

yum install -y jenkins

1.4 查看jenkins安装信息

[root@iZj6cca7jric8s3mwfuxz6Z ~]# rpm -ql jenkins /etc/init.d/jenkins /etc/logrotate.d/jenkins /etc/sysconfig/jenkins /usr/lib/jenkins /usr/lib/jenkins/jenkins.war /usr/sbin/rcjenkins /var/cache/jenkins /var/lib/jenkins /var/log/jenkins

1.5 启动jenkins

service jenkins start

1.6 配置jenkins

#打开配置文件
vim /etc/sysconfig/jenkins
 
#jenkins默认端口8080,若被占用或想更换端口,修改JENKINS_PORT的值
JENKINS_PORT="端口号"

# 将执行用户改成root,不然后面可能出现执行shell没有权限
vim /etc/sysconfig/jenkins # 编辑文件
JENKINS_USER="root" # 改成root
# 修改jenkins文件夹的所属
cd /var/lib
chown -R root:root jenkins
# 重启jenkins服务
service jenkins restart

1.7 运行jenkins项目,配置项目

#浏览器打开Jenkins项目(如果是云服务器,要在安全组规则中开启该端口) IP:你设置的端口

#解锁Jenkins 将服务器 /var/lib/jenkins/secrets/initialAdminPassword 中管理员密码输入到验证框

#若出现该Jenkins实例似乎已离线 解决方法:https://blog.csdn.net/qq_34272964/article/details/93500813

#按要求选择经典安装(新手建议选择)或则自定义安装,之后注册管理员帐号

1.8 卸载

rpm -e jenkins #rpm卸载
rpm -ql jenkins #检查是否卸载成功
find / -iname jenkins | xargs -n 1000 rm -rf 彻底删除残留文件

2. Jenkins操作

2.1 汉化

image.png

image.png

image.png

image.png

等待重启之后就是汉化后的界面了

image.png

2.2 配置插件

image.png

Gitee Pluginimage.png

Maven Integration pluginimage.png

2.3 全局工具配置

image.png

image.png

image.png

2.4 系统配置

image.png

image.png

证书令牌 -> 添加 -> Gitee AIP 令牌 ->获取Gitee Access Token

image.png

image.png

将复制到的Token粘贴到Jenkins Gitee APIV5 私人令牌中然后添加保存

3. 新增任务

3.1 创建Maven项目

image.png

3.2 配置Git仓库

image.png

image.png

image.png

image.png

3.3 配置WebHook

image.png

image.png

3.4 去Gitee上配置webhook

image.png

image.png

3.5 配置Maven命令

image.png

clean install -Dmaven.test.skip=true

3.6 配置编译shell命令

image.png

#!/bin/bash
echo "Stopping   Application"
pid1=$(ps -ef|grep -i test.jar |grep -v "grep"|awk '{print $2}')
echo "获取pid成功"+$pid1
if [ -n "$pid1" ];
then         kill -9 $pid1
	echo '解除端口占用'
fi

echo "......delete test.jar...."
rm -rf /opt/workspace/source/ruoyi-admin.jar

cp /var/lib/jenkins/workspace/green-billing-system/ruoyi-admin/target/ruoyi-admin.jar /opt/workspace/source

sleep 3

echo "..........执行.........."
BUILD_ID=dontkillMe

echo "..........进入 /opt/workspace/source 目录......"
cd  /opt/workspace/source

echo "..........执行java -jar命令.........."
nohup java -jar ruoyi-admin.jar  > green-billing-system.log &

sleep 20
#这边sleep只是为了让程序有充足时间打印日志,来判断程序是否启动成功
#最后面的"&"代表将该项目放入后台运行,否则jekins会一直卡在tomcat启动窗口而不往下继续
echo "......执行完成......"
echo "..........执行java -jar命令.........."
nohup java -jar test.jar --spring.profiles.active=dev --server.port=8083 > 8083.log &

sleep 20
#这边sleep只是为了让程序有充足时间打印日志,来判断程序是否启动成功
#最后面的"&"代表将该项目放入后台运行,否则jekins会一直卡在tomcat启动窗口而不往下继续
echo "......执行完成......"
#!/bin/bash
jarName=ruoyi-modules-recovery.jar
jobName=/resource_recovery/r-recovery
modelPath=/ruoyi-modules/r-recovery

echo "关闭进程"
pid1=$(ps -ef|grep -i $jarName |grep -v "grep"|awk '{print $2}')
echo "获取pid成功"+$pid1
if [ -n "$pid1" ];
then         kill -9 $pid1
 echo '解除占用'
fi

echo "删除jar包"
rm -rf /recovery/$jarName
cp /var/lib/jenkins/workspace$jobName$modelPath/target/$jarName /recovery/
sleep 3

echo "执行"
BUILD_ID=DONTKILLME
nohup java -Xms64m -Xmx512m -jar /recovery/$jarName >/dev/null 2>&1 & 
sleep 3

echo "执行完成"

4. 测试

到Gitee项目管理中点击webhook中的测试image.png

image.png

image.png

THE END