Files
railwaysystem/.gitlab-ci.yml
T

71 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
- 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 "=== 部署与自检成功完成! ==="