name: Release on: push: tags: - 'v*.*.*' # 推送 vX.X.X 格式的 tag 时触发 permissions: contents: write jobs: build-windows: name: Build Windows Installer runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '22' cache: 'npm' cache-dependency-path: desktop/package-lock.json - name: Setup Python uses: actions/setup-python@v5 with: python-version: '3.12' - name: Install frontend dependencies working-directory: frontweb run: npm ci - name: Build frontend working-directory: frontweb run: npm run build - name: Install backend dependencies working-directory: backend-node env: NODE_TLS_REJECT_UNAUTHORIZED: '0' run: npm ci - name: Install desktop dependencies & rebuild native modules working-directory: desktop env: NODE_TLS_REJECT_UNAUTHORIZED: '0' run: npm ci - name: Copy frontend dist working-directory: desktop run: node scripts/copy-front.js - name: Copy backend working-directory: desktop run: node scripts/copy-backend.js # 标准版(含示例数据) - name: Build Standard Installer working-directory: desktop env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: npx electron-builder --win --publish never - name: Upload Standard Build Artifacts uses: actions/upload-artifact@v4 with: name: windows-release path: desktop/release/*.exe retention-days: 7 - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: files: desktop/release/*.exe generate_release_notes: true draft: true # 先创建草稿,人工审核后手动发布 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}