This commit is contained in:
67
.gitea/workflows/deploy.yml
Normal file
67
.gitea/workflows/deploy.yml
Normal file
@@ -0,0 +1,67 @@
|
||||
name: Build and Deploy
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
workflow_dispatch: # 支持手动触发
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Deploy to Server
|
||||
uses: appleboy/ssh-action@v1
|
||||
with:
|
||||
host: ${{ secrets.SERVER_HOST }}
|
||||
port: ${{ secrets.SERVER_PORT || 22 }}
|
||||
username: ${{ secrets.SERVER_USER }}
|
||||
key: ${{ secrets.SSH_KEY }}
|
||||
script: |
|
||||
set -e
|
||||
|
||||
echo "=========================================="
|
||||
echo "开始部署: $(date '+%Y-%m-%d %H:%M:%S')"
|
||||
echo "=========================================="
|
||||
|
||||
# 项目路径配置
|
||||
PROJECT_DIR=/www/wwwroot/sionrui
|
||||
BACKEND_DIR=/www/wwwroot/yudao-server
|
||||
FRONTEND_DIR=/www/wwwroot/muyetools.cn
|
||||
|
||||
# 1. 拉取最新代码
|
||||
echo "[1/4] 拉取最新代码..."
|
||||
cd $PROJECT_DIR
|
||||
git fetch origin
|
||||
git reset --hard origin/main
|
||||
git pull origin main
|
||||
|
||||
# 2. 构建后端
|
||||
echo "[2/4] 构建后端..."
|
||||
cd $PROJECT_DIR
|
||||
mvn clean package -DskipTests -q
|
||||
|
||||
# 备份并部署后端
|
||||
if [ -f "$BACKEND_DIR/yudao-server.jar" ]; then
|
||||
cp $BACKEND_DIR/yudao-server.jar $BACKEND_DIR/backup/yudao-server-$(date +%Y%m%d%H%M).jar
|
||||
fi
|
||||
cp $PROJECT_DIR/yudao-server/target/yudao-server.jar $BACKEND_DIR/
|
||||
|
||||
# 3. 构建前端
|
||||
echo "[3/4] 构建前端..."
|
||||
cd $PROJECT_DIR/frontend
|
||||
pnpm install --frozen-lockfile
|
||||
pnpm build
|
||||
|
||||
# 部署前端
|
||||
rm -rf $FRONTEND_DIR/*
|
||||
cp -r $PROJECT_DIR/frontend/app/web-gold/dist/* $FRONTEND_DIR/
|
||||
|
||||
# 4. 重启后端服务
|
||||
echo "[4/4] 重启后端服务..."
|
||||
cd $BACKEND_DIR
|
||||
bash deploy.sh
|
||||
|
||||
echo "=========================================="
|
||||
echo "部署完成: $(date '+%Y-%m-%d %H:%M:%S')"
|
||||
echo "=========================================="
|
||||
Reference in New Issue
Block a user