1、Gitee Push自动构建配置
这一步官方文档讲得很清楚了,大家可自行参考配置。
Gitee Jenkins插件官方文档
这里提一嘴Gitee仓库中的webhook配置
这里的URL来自于Jenkins 项目使用Gitee插件的配置中。
WebHook密码也来自于配置
gitee和jenkins的webhook密码保持一致。
配置完成后点击测试,gitee会向jenkins发送消息,正常情况下jenkins中的项目就开始自动构建了。
2、构建后自动运行
我的项目是一个Springboot项目,所以构建后是一个jar包,位置在jenkins_home/{项目名}/target
。
我们需要明确的一点,jenkins的自动拉取和build都是在docker容器内的,而我们的项目是希望运行在服务器环境上的,我们需要将jar包发到外部环境中,然后使用命令运行!
jenkins有一个插件 Publish over SSH
可以为我们解决这个问题。
首先在系统设置-系统设置-Publish over SSH-SSH Server中配置服务器信息。
这里password填了,path to key就不需要填。
我们再返回到项目中设置。
选中我们刚设置的SSH,sourcef file是相对于jenkins_home/{项目名}/的那个目录,
同时可以把target前缀去掉。
Remote director在SSH的配置中填了这里就不要再填了,不然效果会叠加。
这里贴出我的发布shell。
#!/bin/sh
JAR_PATH=/root/app/workspace
JAR_NAME=freefancy-1.0.0.jar
PID=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')
if [ -z "${PID}" ]
then
echo "============= $JAR_NAME process stopped ==============="
else
echo kill $PID
kill -9 $PID
fi
sleep 5s
cd $JAR_PATH
nohup java -jar ${JAR_NAME}> ${JAR_PATH}/${JAR_NAME}.log 2>&1 &
最后是运行jar包的语句,之后springboot需要加什么命令行参数都可以在这里加。
这样,我们只要push到Gitee仓库后,jenkins就会自动拉取新的代码,build后自动运行!