Jenkins自动化部署脚本

记录学习Jenkins时,自动化部署tomcat项目的脚本。

新建 deploy.sh 脚本文件,文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/env bash

: << !
# 该注释内容为 Jenkins 中的shell脚本
# 表示部署完不kill进程,jenkins进程执行完会自动关闭,否则会把启动的server也关闭掉,
BUILD_ID=DONTKILLME
# 加载配置文件
. /etc/profile

# 执行.sh前需要配置(声明)如下参数
# 1.服务器上项目路径(不含项目名)
export PROJECT_PATH=/root/projects/java

# 2.项目名,同xxx.git
export PROJECT_NAME=LoginDemo

# 3.tomcat在服务机器上的全路径
export TOMCAT_PATH=/root/apache-tomcat-9.0.37

# 4.运行部署脚本(项目目录下的deploy.sh脚本)
sh $PROJECT_PATH/$PROJECT_NAME/deploy.sh
!


# 以下为脚本正文:
# 自动部署步骤:git同步最新代码 > maven 打包 > 停止tomcat > 部署应用 > 启动tomcat

### 函数:关闭tomcat(也可以通过 Tomcat 的 shutdown.sh 停止服务器)
killTomcat()
{
pid=`ps -ef|grep tomcat|grep java|awk '{print $2}'`
echo "tomcat Id list :$pid"
if [ "$pid" = "" ]
then
echo "no tomcat pid alive"
else
kill -9 $pid
fi
}

# 删除本地旧代码(文件夹)
rm -rf $PROJECT_PATH/$PROJECT_NAME
# 拉取新代码
cd $PROJECT_PATH
git clone git@gitlab.com:RainbowRing/LoginDemo.git

# 构建项目
cd $PROJECT_PATH/$PROJECT_NAME
mvn clean install

# 停止tomcat
killTomcat

# 删除原有工程
rm -f $TOMCAT_PATH/webapps/$PROJECT_NAME.war

# 复制maven打包后的工程到tomcat的webapps目录下
cp $PROJECT_PATH/$PROJECT_NAME/target/$PROJECT_NAME.war $TOMCAT_PATH/webapps/

# 重命名工程(如果需要的话)
#cd $TOMCAT_PATH/webapps/
#mv LoginDemo loginDemo

# 启动Tomcat
cd $TOMCAT_PATH/
sh bin/startup.sh

Jenkins自动化部署脚本
https://binbiubiu.github.io/20200723130000/
作者
Binbiubiu
发布于
2020年7月23日