name: 前端构建与部署 on: push: branches: [main, develop, 'feature/**'] paths: - 'admin-ui/**' - 'cashier-mobile/**' - 'customer-mobile/**' - 'package.json' - 'pnpm-workspace.yaml' pull_request: branches: [main, develop] jobs: build-admin-ui: runs-on: ubuntu-latest steps: - name: 检出代码 uses: actions/checkout@v4 - name: 设置 Node.js uses: actions/setup-node@v4 with: node-version: '18' - name: 安装 pnpm uses: pnpm/action-setup@v2 with: version: 8 - name: 安装依赖 run: pnpm install - name: 类型检查 run: pnpm type-check - name: 构建管理后台 run: pnpm build:admin - name: 构建收银端 run: pnpm build:cashier - name: 上传构建产物 uses: actions/upload-artifact@v4 with: name: admin-ui-dist path: admin-ui/dist retention-days: 7 deploy: needs: build-admin-ui runs-on: ubuntu-latest if: github.ref == 'refs/heads/main' steps: - name: 下载构建产物 uses: actions/download-artifact@v4 with: name: admin-ui-dist path: dist - name: 部署到服务器 run: | echo "部署脚本待配置" echo "可以通过 rsync/ssh 部署到 nginx 目录" # rsync -avz dist/ user@server:/var/www/html/