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.
This commit is contained in:
YeonGyu-Kim 2026-02-27 04:39:05 +09:00
parent ae54fd31f4
commit 0749a8f138

View File

@ -154,6 +154,7 @@ jobs:
# ============================================================================= # =============================================================================
publish: publish:
needs: build needs: build
if: always() && !cancelled()
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false fail-fast: false
@ -176,14 +177,16 @@ jobs:
fi fi
- name: Download artifact - name: Download artifact
id: download
if: steps.check.outputs.skip != 'true' if: steps.check.outputs.skip != 'true'
continue-on-error: true
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
with: with:
name: binary-${{ matrix.platform }} name: binary-${{ matrix.platform }}
path: . path: .
- name: Extract artifact - name: Extract artifact
if: steps.check.outputs.skip != 'true' if: steps.check.outputs.skip != 'true' && steps.download.outcome == 'success'
run: | run: |
PLATFORM="${{ matrix.platform }}" PLATFORM="${{ matrix.platform }}"
mkdir -p packages/${PLATFORM} mkdir -p packages/${PLATFORM}
@ -199,13 +202,13 @@ jobs:
ls -la packages/${PLATFORM}/bin/ ls -la packages/${PLATFORM}/bin/
- uses: actions/setup-node@v4 - uses: actions/setup-node@v4
if: steps.check.outputs.skip != 'true' if: steps.check.outputs.skip != 'true' && steps.download.outcome == 'success'
with: with:
node-version: "24" node-version: "24"
registry-url: "https://registry.npmjs.org" registry-url: "https://registry.npmjs.org"
- name: Publish ${{ matrix.platform }} - name: Publish ${{ matrix.platform }}
if: steps.check.outputs.skip != 'true' if: steps.check.outputs.skip != 'true' && steps.download.outcome == 'success'
run: | run: |
cd packages/${{ matrix.platform }} cd packages/${{ matrix.platform }}