为了实现Java+vue前后端分离的项目能够在合并到主分支时能自动构建+上传到服务器发布上线,使用云效codeup的流水线功能,配合宝塔面板的环境来上线项目。需要做以下配置:
首先是分库,后端项目和前端项目分两个库存储,开发都在分支上开发,合并到主支的都是可以上线的代码。代码库结构大致如图

Java项目
宝塔面板配置
在”Java项目管理“中添加项目,如图,这个项目偷懒没有env

启动命令:
/www/server/java/jdk-21.0.2/bin/java -jar -Xmx1024M -Xms256M /www/wwwroot/resourceReservation/resourceReservation.jar
云效流水线配置
点开后端项目的仓库,选择”流水线“,创建流水线-可视化编排-空模板-创建,配置如图

流水线源
就是你后端代码的仓库,具体配置如图


Java 构建上传任务
如图




用的maven,直接打包。
执行命令部分脚本如下:
mvn -B clean package -Dmaven.test.skip=true -Dautoconfig.skip
# 成功后发送Gotify通知
curl -sSf -X POST "https://yourdomain.xyz/message?token=urtoken" \
-H "Content-Type: application/json" \
-d '{
"title": "构建成功通知",
"message": "xxx已云构建成功",
"priority": 4
}' >/dev/null 2>&1 || echo "Gotify通知发送失败"
带推送通知的,不要也不影响部署
主机部署
这一步需要自己创建一个主机组,并且按照界面提示在需要部署的机器上安装Runner。设置如下:


部署脚本如下,用宝塔的java-service启停项目。偷懒没有用env
java-service resourceReservation stop
rm -f /www/wwwroot/resourceReservation/resourceReservation.jar
tar zxvf /www/wwwroot/resourceReservation/package.tgz -C /www/wwwroot/resourceReservation
java-service resourceReservation start
# 部署完成后删除不需要的文件和文件夹
rm -f /www/wwwroot/resourceReservation/package.tgz
rm -f /www/wwwroot/resourceReservation/resourceReservation.jar.original
rm -rf /www/wwwroot/resourceReservation/classes
rm -rf /www/wwwroot/resourceReservation/generated-sources
rm -rf /www/wwwroot/resourceReservation/maven-status
rm -rf /www/wwwroot/resourceReservation/maven-archiver
# 成功后发送Gotify通知
curl -sSf -X POST "https://yourdomain.xyz/message?token=urtoken" \
-H "Content-Type: application/json" \
-d '{
"title": "部署成功通知",
"message": "xxx已更新到最新版本",
"priority": 8
}' >/dev/null 2>&1 || echo "Gotify通知发送失败"
点击“保存并运行”试一下吧

前端项目
宝塔面板配置

云效流水线配置
和后端项目的大差不差,流水线源的配置和后端的是一个思路

Node.js 构建
如图:




执行命令的代码:
npm install -g pnpm@10.32.1
# pnpm setup
# pnpm config set --global ignore-scripts false
# pnpm approve-builds --all
pnpm install
pnpm run build
# 成功后发送Gotify通知
curl -sSf -X POST "https://yourdomain.xyz/message?token=urtoken" \
-H "Content-Type: application/json" \
-d '{
"title": "构建完成通知",
"message": "xxx-UI 云构建完成",
"priority": 4
}' >/dev/null 2>&1 || echo "Gotify通知发送失败"
主机部署
选择你需要部署的主机组

部署脚本:
rm -f /www/wwwroot/resourceReservation/frontEnd
tar zxvf /www/wwwroot/resourceReservation/UI-package.tgz -C /www/wwwroot/resourceReservation/frontEnd
# 新增:部署完成后删除不需要的文件和文件夹
rm -f /www/wwwroot/resourceReservation/UI-package.tgz
# 成功后发送Gotify通知
curl -sSf -X POST "https://yourdomain.xyz/message?token=urtoken" \
-H "Content-Type: application/json" \
-d '{
"title": "部署成功通知",
"message": "xxx-UI 已更新到最新版本",
"priority": 8
}' >/dev/null 2>&1 || echo "Gotify通知发送失败"
完活,点击“保存并运行”试一下吧







