name: 部署管理后台 on: push: branches: [ main ] paths: - 'admin/**' - '.gitea/workflows/deploy-admin.yml' workflow_dispatch: env: BUN_VERSION: 'latest' jobs: deploy: name: 🚀 部署管理后台 runs-on: ubuntu-latest if: github.ref == 'refs/heads/main' steps: - name: 📥 检出代码 uses: actions/checkout@v4 - name: 🥖 设置 Bun 环境 uses: oven-sh/setup-bun@v1 with: bun-version: ${{ env.BUN_VERSION }} - name: 📦 安装依赖 working-directory: ./admin run: bun install --frozen-lockfile - name: 🏗️ 构建生产版本 working-directory: ./admin env: VITE_APP_TITLE: 摄影作品集管理后台 VITE_API_BASE_URL: https://api.photography.iriver.top VITE_UPLOAD_URL: https://api.photography.iriver.top/upload run: bun run build - name: 📤 上传并部署 uses: appleboy/scp-action@v0.1.6 with: host: ${{ secrets.ALIYUN_IP }} username: ${{ secrets.ALIYUN_USER_NAME }} password: ${{ secrets.ALIYUN_PWD }} port: 22 source: "admin/dist/" target: "/home/gitea/www/photography-admin" rm: true strip_components: 1 - name: 🔧 设置权限和健康检查 uses: appleboy/ssh-action@v1.0.0 with: host: ${{ secrets.ALIYUN_IP }} username: ${{ secrets.ALIYUN_USER_NAME }} password: ${{ secrets.ALIYUN_PWD }} port: 22 script: | echo "🔧 设置权限..." ADMIN_DIR="/home/gitea/www/photography-admin" chown -R gitea:gitea $ADMIN_DIR chmod -R 755 $ADMIN_DIR echo "✅ 管理后台部署完成!" # 验证部署 if [ -f "$ADMIN_DIR/index.html" ]; then echo "✅ index.html 已部署" fi