From 0749a8f1384cc84d997b05dde68023e0a6576d7f Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Fri, 27 Feb 2026 04:39:05 +0900 Subject: [PATCH] fix(ci): make platform publish resilient to individual build failures publish job now runs with if: always() && !cancelled(), and gates each publish step on download.outcome == 'success'. One flaky target (e.g. windows-x64-baseline) no longer blocks all other platforms. --- .github/workflows/publish-platform.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish-platform.yml b/.github/workflows/publish-platform.yml index 74089679..07144639 100644 --- a/.github/workflows/publish-platform.yml +++ b/.github/workflows/publish-platform.yml @@ -154,6 +154,7 @@ jobs: # ============================================================================= publish: needs: build + if: always() && !cancelled() runs-on: ubuntu-latest strategy: fail-fast: false @@ -176,14 +177,16 @@ jobs: fi - name: Download artifact + id: download if: steps.check.outputs.skip != 'true' + continue-on-error: true uses: actions/download-artifact@v4 with: name: binary-${{ matrix.platform }} path: . - name: Extract artifact - if: steps.check.outputs.skip != 'true' + if: steps.check.outputs.skip != 'true' && steps.download.outcome == 'success' run: | PLATFORM="${{ matrix.platform }}" mkdir -p packages/${PLATFORM} @@ -199,13 +202,13 @@ jobs: ls -la packages/${PLATFORM}/bin/ - uses: actions/setup-node@v4 - if: steps.check.outputs.skip != 'true' + if: steps.check.outputs.skip != 'true' && steps.download.outcome == 'success' with: node-version: "24" registry-url: "https://registry.npmjs.org" - name: Publish ${{ matrix.platform }} - if: steps.check.outputs.skip != 'true' + if: steps.check.outputs.skip != 'true' && steps.download.outcome == 'success' run: | cd packages/${{ matrix.platform }}