Jenkins, SpringBoot, Linux, Gitee自动部署
相关软件版本号:
Jenkins: 2.190.1
Java : openjdk version "1.8.0_232"
Linux: CentOS Linux release 7.7.1908 (Core)
Git: gitee.com (https://gitee.com/help/articles/4193)
作者的Jenkins就安装在测试服务器上,跟jar要部署的服务器是同一个服务器,所以没有使用 Build Environment-> Send files or execute commands over SSH功能
1. 创建一个JOB
配置的是Gitee Connection (https://gitee.com/help/articles/4193),其他参数默认
2. 源码管理
2.1 配置Gitee.com上源码的地址,以及登录信息 ,具体可参考 https://gitee.com/help/articles/4193
2.2 Additional Behaviours: 选择Clean before checkout,每次获取源码前先清理一下,以免有缓存导致有些文件未更新
2.3 Branch,获取源代码时,具体从哪个分支获取,如: master, develop
3. 触发构建
默认既可以,作者用来发布开发环境,或者直接用 Push Events 去触发 origin/dev-20191015分支
4. 构建编译环境
其他参数默认,Add pre-build step->Execute shell
编译前停止SpringBoot 服务
stop-pls-admin8087.sh内容如下,
stop-pls-admin8087.sh和pls-admin8087.jar文件都在目录 /mnt/diskb/mallplus-runnning下
4.1停止jar服务
4.2 删除jar文件
#!/bin/sh
echo "Stop pls-admin8085 0.0.1............"
echo ".............stopping.................."
NAME='pls-admin8087.jar'
echo $NAME
ID=`ps -ef | grep "$NAME" | grep -v "$0" | grep -v "grep" | awk '{print $2}'`
echo $ID
echo "---------------"
for id in $ID
do
kill -9 $id
echo "killed $id"
done
rm -rf pls-admin8087.jar
echo "...........stopped successfully............"
5. 编译
编译时先清除之前的缓存,Goals and options: clean package
6. 编译后执行命令
Add post-build steps->Execute shell
启动SpringBoot jar文件
start-pls-admin8087.sh文件内容
6.1 拷贝编译的Jar文件到执行目录下,并改名, /mnt/diskb/mallplus-runnning/pls-admin8087.jar
6.2 以后台进程模式启动pls-admin8087.jar文件,并记录日志信息到日志文件 pls-admin-run8087.log
6.3 如果jar服务启动后不工作,可能是jenkins杀掉了启动的服务,添加 BUILD_ID=dontKillMe 来避免被杀掉
6.4 如果执行shell时找不到一些环境变量,用 source /etc/profile 来主动载入环境变量
#!/bin/sh
echo "Start pls-admin8087 0.0.1............"
echo ".............starting.................."
source /etc/profile
BUILD_ID=dontKillMe
chmod +x /var/lib/jenkins/workspace/plsadmin/pls-admin/target/pls-admin-0.0.1-SNAPSHOT.jar
cp /var/lib/jenkins/workspace/plsadmin/pls-admin/target/pls-admin-0.0.1-SNAPSHOT.jar /mnt/diskb/mallplus-runnning/pls-admin8087.jar
chmod +x /mnt/diskb/mallplus-runnning/pls-admin8087.jar
nohup java -jar /mnt/diskb/mallplus-runnning/pls-admin8087.jar > pls-admin-run8087.log 2>&1 &
echo "...........started successfully............"
7. 上述动作如果都执行成功,则通过url和端口进行访问测。
备注:Jenkins 环境配置
1. 配置java JDK , Linux下一般安装免费的 Open JDK
如果提示不是JDK,这需要安装open jdk devel版本,即开发版本
2. 配置MAVEN
3. 配置Node JS