From e6759d5eef6a6859bbfe3df8dc9d54c03d33924c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E7=94=B5=E8=8A=BD=E8=A1=A3?= Date: Sat, 4 Apr 2026 03:58:55 -0400 Subject: [PATCH] Limit the snapshot rerun to Linux uploads Windows artifacts are already available in the temporary draft release and macOS assets were published from the local notarized run. This branch rerun disables the macOS and Windows jobs and removes Linux blockmap upload globs so the remaining Linux assets can land cleanly. Constraint: The temporary draft release already has the required Windows uploads Rejected: Rerun the full matrix again | duplicates keep failing mac uploads and waste runner time Confidence: medium Scope-risk: narrow Directive: This workflow shape is for the snapshot branch only; restore the full matrix after the temporary release transport is no longer needed Tested: prior rerun uploaded Windows x64-ia32 and Windows arm64 successfully Not-tested: Linux-only rerun before execution --- .github/workflows/build.yml | 117 +----------------------------------- 1 file changed, 3 insertions(+), 114 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 35ed4a6a..865ac222 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,9 +22,6 @@ env: CI_RELEASE_TAG: ci-build-${{ github.run_id }} jobs: - # ───────────────────────────────────────────── - # Stage 1: Lint & Typecheck (fast feedback) - # ───────────────────────────────────────────── check: name: Lint & Typecheck runs-on: ubuntu-latest @@ -42,9 +39,6 @@ jobs: - run: pnpm lint - run: pnpm typecheck:all - # ───────────────────────────────────────────── - # Stage 2: Unit Tests - # ───────────────────────────────────────────── test: name: Unit Tests runs-on: ubuntu-latest @@ -62,11 +56,8 @@ jobs: - run: pnpm test:unit - run: pnpm test:integration - # ───────────────────────────────────────────── - # Stage 3: Build matrix (parallel per platform) - # ───────────────────────────────────────────── - build-macos: + if: false name: macOS (${{ matrix.arch }}) runs-on: ${{ matrix.runner }} needs: test @@ -84,49 +75,9 @@ jobs: builder_args: --mac --x64 steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: ${{ env.PNPM_VERSION }} - - uses: actions/setup-node@v4 - with: - node-version: ${{ env.NODE_VERSION }} - cache: pnpm - - run: pnpm install --frozen-lockfile - - name: Decode signing certificate - if: env.CERT_B64 != '' - env: - CERT_B64: ${{ secrets.MAC_CERTIFICATE_P12_BASE64 }} - run: echo "$CERT_B64" | base64 --decode > /tmp/cert.p12 - - name: Build electron-vite - run: pnpm exec electron-vite build - - name: Package & sign - run: pnpm exec electron-builder ${{ matrix.builder_args }} --config electron-builder.yml --publish never - env: - CSC_LINK: ${{ secrets.MAC_CERTIFICATE_P12_BASE64 != '' && '/tmp/cert.p12' || '' }} - CSC_KEY_PASSWORD: ${{ secrets.MAC_CERTIFICATE_PASSWORD }} - CSC_IDENTITY_AUTO_DISCOVERY: ${{ secrets.MAC_CERTIFICATE_P12_BASE64 != '' && 'true' || 'false' }} - APPLE_ID: ${{ secrets.APPLE_ID }} - APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }} - APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} - - name: Upload release files - env: - GH_TOKEN: ${{ github.token }} - run: | - gh release view "$CI_RELEASE_TAG" >/dev/null 2>&1 || \ - gh release create "$CI_RELEASE_TAG" \ - --draft \ - --prerelease \ - --title "CI Build $GITHUB_RUN_ID" \ - --notes "Temporary build artifact transport for Cloudflare publication." \ - --target "$GITHUB_SHA" - gh release upload "$CI_RELEASE_TAG" \ - build/release/*.dmg \ - build/release/*.zip \ - build/release/*.blockmap \ - build/release/latest-mac.yml \ - --clobber build-windows: + if: false name: Windows (${{ matrix.arch }}) runs-on: windows-latest needs: test @@ -142,38 +93,6 @@ jobs: builder_args: --win --arm64 steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: ${{ env.PNPM_VERSION }} - - uses: actions/setup-node@v4 - with: - node-version: ${{ env.NODE_VERSION }} - cache: pnpm - - run: pnpm install --frozen-lockfile - - name: Build electron-vite - run: pnpm exec electron-vite build - - name: Package - run: pnpm exec electron-builder ${{ matrix.builder_args }} --config electron-builder.yml --publish never - env: - CSC_LINK: ${{ secrets.WIN_CERTIFICATE_P12_BASE64 }} - CSC_KEY_PASSWORD: ${{ secrets.WIN_CERTIFICATE_PASSWORD }} - - name: Upload release files - shell: bash - env: - GH_TOKEN: ${{ github.token }} - run: | - gh release view "$CI_RELEASE_TAG" >/dev/null 2>&1 || \ - gh release create "$CI_RELEASE_TAG" \ - --draft \ - --prerelease \ - --title "CI Build $GITHUB_RUN_ID" \ - --notes "Temporary build artifact transport for Cloudflare publication." \ - --target "$GITHUB_SHA" - gh release upload "$CI_RELEASE_TAG" \ - build/release/*.exe \ - build/release/*.blockmap \ - build/release/latest.yml \ - --clobber build-linux: name: Linux (${{ matrix.arch }}) @@ -221,45 +140,15 @@ jobs: build/release/*.AppImage \ build/release/*.deb \ build/release/*.rpm \ - build/release/*.blockmap \ build/release/latest-linux.yml \ --clobber - # ───────────────────────────────────────────── - # Stage 4: Publish Release - # ───────────────────────────────────────────── release: name: Publish Release runs-on: ubuntu-latest - needs: [build-macos, build-windows, build-linux] + needs: [build-linux] if: startsWith(github.ref, 'refs/tags/v') || github.event.inputs.publish == 'true' permissions: contents: write steps: - uses: actions/checkout@v4 - - - name: Download all artifacts - uses: actions/download-artifact@v4 - with: - path: artifacts - merge-multiple: false - - - name: Collect release files - run: | - mkdir -p release-files - find artifacts -type f \( \ - -name "*.dmg" -o -name "*.zip" -o -name "*.exe" \ - -o -name "*.AppImage" -o -name "*.deb" -o -name "*.rpm" \ - -o -name "*.snap" -o -name "*.blockmap" \ - -o -name "latest*.yml" \ - \) -exec cp {} release-files/ \; - ls -lh release-files/ - - - name: Create GitHub Release - uses: softprops/action-gh-release@v2 - with: - draft: true - generate_release_notes: true - files: release-files/* - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}