72 lines
2.0 KiB
YAML
72 lines
2.0 KiB
YAML
stages:
|
|
- build_backend
|
|
- build_frontend
|
|
- deploy
|
|
|
|
variables:
|
|
GIT_STRATEGY: clone
|
|
JAVA_HOME: "/data2/wzb/tools/jdk8"
|
|
M2_HOME: "/data2/wzb/tools/maven"
|
|
PATH: "/data2/wzb/tools/maven/bin:/data2/wzb/tools/jdk8/bin:/usr/local/bin:/usr/bin:/bin"
|
|
|
|
# 1. 编译打包后端
|
|
build_backend:
|
|
stage: build_backend
|
|
tags:
|
|
- railway-deploy
|
|
rules:
|
|
- if: '$CI_COMMIT_BRANCH'
|
|
script:
|
|
- echo "=== 开始编译后端 RuoYi-Vue ==="
|
|
- export JAVA_HOME=/data2/wzb/tools/jdk8
|
|
- export PATH=/data2/wzb/tools/maven/bin:$JAVA_HOME/bin:$PATH
|
|
- javac -version
|
|
- bash scripts/bootstrap/check-kingbase-jdbc.sh
|
|
- cd RuoYi-Vue
|
|
- mvn clean package
|
|
- echo "=== 后端编译成功 ==="
|
|
artifacts:
|
|
expire_in: 2 days
|
|
paths:
|
|
- RuoYi-Vue/ruoyi-admin/target/ruoyi-admin.jar
|
|
|
|
# 2. 编译打包前端
|
|
build_frontend:
|
|
stage: build_frontend
|
|
tags:
|
|
- railway-deploy
|
|
rules:
|
|
- if: '$CI_COMMIT_BRANCH'
|
|
script:
|
|
- echo "=== 开始编译前端 build_ui ==="
|
|
- export NODE_OPTIONS="--openssl-legacy-provider --dns-result-order=ipv4first"
|
|
- cd build_ui
|
|
- if [ ! -d "node_modules" ] && [ -d "/data2/wzb/tools/frontend-cache/node_modules" ]; then
|
|
echo "使用服务器本地缓存的 node_modules";
|
|
ln -sfn /data2/wzb/tools/frontend-cache/node_modules ./node_modules;
|
|
fi
|
|
- npm run build:prod
|
|
- echo "=== 前端编译成功 ==="
|
|
artifacts:
|
|
expire_in: 2 days
|
|
paths:
|
|
- build_ui/dist/
|
|
|
|
# 3. 部署到业务目录并平滑重启
|
|
deploy_production:
|
|
stage: deploy
|
|
tags:
|
|
- railway-deploy
|
|
rules:
|
|
- if: '$CI_COMMIT_BRANCH == "feat/cicd-pipeline"'
|
|
script:
|
|
- echo "=== 开始部署应用 ==="
|
|
# 部署前端静态资源到发布目录
|
|
- rm -rf /data2/wzb/deploy/frontend/*
|
|
- cp -r build_ui/dist/* /data2/wzb/deploy/frontend/
|
|
# 部署后端 Jar 包并执行平滑重启
|
|
- cp RuoYi-Vue/ruoyi-admin/target/ruoyi-admin.jar /data2/wzb/deploy/backend/
|
|
- chmod +x deploy/restart-all.sh
|
|
- bash deploy/restart-all.sh
|
|
- echo "=== 部署与自检成功完成! ==="
|