Jenkins打包部署gitee项目至阿里云ECS服务器
所需插件:
Git Parameter Plug-In插件
Publish Over SSH插件
Gitee Plugin插件
NodeJS Plugin插件(打包前端所需)
Jenkins安装及配置详见链接:Jenkins安装及基础环境配置
Jenkins配置SSH免密登录:Jenkins配置SSH免密登录
以下为具体配置步骤:
1、Gitee配置
进入Dashboard -- Manage Jenkins -- Configure System,下拉找到Gitee配置部分,如下图示:
配置内容:
链接名:Gitee
Gitee域名URL:https://gitee.com
证书令牌:点击添加按钮,添加Gitee证书令牌
添加Gitee证书令牌如下图示:
添加凭据配置:
类型:Gitee API令牌
范围:全局 (Jenkins, nodes, items, all child items, etc)
Gitee APIV5 私人令牌:[gitee生成的token]
ID:13(整形数字)
描述:Gitee API Token
在Gitee配置中,选择刚添加的证书令牌,点击测试链接按钮,如果显示成功,则表明Gitee配置没问题,可继续下一步操作。
2、创建项目及配置
首先,点击“新建Item”,创建项目文件夹;
其次,进入文件夹后,再次点击“新建Item”,输入任务名称创建Freestyle project项目。
General
基础配置如下图示:
配置内容:
填写项目描述
选择Gitee链接
勾选参数化构建项目
添加Choice Parameter,参数名:environment
选项(每行一个值):
test
mgr
描述分别与选项对应:
test-测试环境
mgr-预上线环境
添加Git Parameter,参数名:branch
描述:请选择要发布的分支
参数类型:分支
默认值:origin/master
源码管理
源码管理配置如下图所示:
配置内容:
选择Git
填写Respository URL仓库地址
Branches to build:
指定分支配置变量${branch},对应一开始配置的Git parameter参数。
构建
由于Jenkins所在机器为Windows系统,故:
增加构建步骤选择:Execute Windows batch command
打包命令:
echo "执行编译打包..."
mvn clean install
echo "打包完毕"
构建后操作
构建后操作如下图所示:
点击Add Server按钮,选择对应的远程服务器
SSH远程配置:
SSH Server
Name:选择环境对应的SSH服务器
点击高级:
勾选:Verbose output in console
勾选Label,输入框输入:test,标识当前服务器对应环境
Transfers
Source files(要上传的源文件):business-admin/target/business-admin.jar
Remove prefix:business-admin/target/
Remote directory(上传服务器临时目录):/opt/publish/apple-business-api/
Exec command:发布shell脚本
具体发布shell脚本如下:
#!/bin/bash
source /etc/profile
publishDir=/opt/publish/apple-business-api
serviceDir=/opt/servers/apple-business/backend
AppName=business-admin.jar
# JVM参数
JVM_OPTS=" --spring.profiles.active=test -Dname=$AppName -Duser.timezone=Asia/Shanghai -Xms512M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"
APP_HOME=`pwd`
LOG_PATH=$APP_HOME/logs/$AppName.log
function start()
{
PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
if [ x"$PID" != x"" ]; then
echo "$AppName is running..."
else
nohup java -jar $AppName $JVM_OPTS > /dev/null 2>&1 &
echo "Start $AppName success..."
fi
}
function stop()
{
echo "Stop $AppName"
PID=""
query(){
PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
}
query
if [ x"$PID" != x"" ]; then
kill -TERM $PID
echo "$AppName (pid:$PID) exiting..."
while [ x"$PID" != x"" ]
do
sleep 1
query
done
echo "$AppName exited."
else
echo "$AppName already stopped."
fi
}
cd $serviceDir
echo "停止服务..."
stop
echo "将jar包拷贝至服务目录..."
cp $publishDir/business-admin.jar -r -f $serviceDir/business-admin.jar
echo "启动服务..."
java -version
start
echo "备份部署的jar包..."
mkdir -p $publishDir/backup/${BUILD_ID}/
mv $publishDir/business-admin.jar $publishDir/backup/${BUILD_ID}/
echo "发布完毕..."
最后,点击最底下“高级”按钮
勾选Parameterized publishing
Parameter name:与最开始Choice Parameter参数名:environment保持一致
如下图示;
点击应用--保存即可。
以上远程发布即配置完成。
构建发布测试
点击Build with Parameters按钮,
选择对应的环境参数和要发布的分支,
点击“开始构建”按钮,执行构建操作。
点击下方构建历史,可查看对应的控制台输出信息。
如下图示:
常见构建失败错误:
找不到命令,创建文件夹无权限等问题,具体可根据控制台日志提示修改测试。
(完)