Files
fusion/.changeset/fix-release-binary-publishing.md
gsxdsm 805eae4237 fix(ci): scope node_modules cache key per job to stop save races
The Windows desktop build now succeeds (artifact builds + uploads), but the
job was marked failed on the post-job cache *save*: build-binaries
(windows-x64) and build-desktop-windows share runner.os/arch and thus the
same cache key, so concurrent saves hit "unable to reserve cache ... another
job may be creating this cache." Adding github.job to the key gives each job
its own cache and eliminates the race.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 09:09:25 -07:00

1.9 KiB

@runfusion/fusion
@runfusion/fusion
patch

Fix the Binary Release workflow so platform binaries publish to GitHub Releases again:

  • The release job now tolerates a single failing build leg instead of being skipped, which previously suppressed all assets.
  • The node_modules cache key includes CPU arch (so arm64 runners no longer restore x64 native deps, fixing the @rollup/rollup-linux-arm64-gnu build crash) and the job id (so same-OS/arch jobs don't race on one key and fail the post-job cache save).
  • The macOS and Windows CLI signing steps are skipped gracefully when their certificate secrets are absent, so unsigned binaries still publish.
  • Desktop packaging now invokes electron-builder directly via pnpm exec instead of the dist:* scripts: pnpm leaked the -- separator into script args, which made electron-builder ignore --publish never (auto-publishing to the wrong repo and 404ing) and drop the Linux --x64 --arm64 flags.
  • The desktop build spawns workspace .cmd bins with a shell on Windows, fixing the spawn EINVAL failure.
  • The desktop package declares an author with email so the Linux .deb target (fpm) can build.
  • The Linux AppImage verify step matches electron-builder's actual x64 output name (-linux-x86_64.AppImage).
  • @types/node is pinned workspace-wide via a pnpm override so the desktop/plugin-sdk build is deterministic (a stale transitive @types/node lacking global fetch/Response types intermittently broke the Windows desktop build).
  • The build-exe-cross tests that cross-compile platform binaries are now opt-in (FUSION_TEST_BUILD_EXE=1) instead of auto-running on every CI run; native per-platform binary builds remain covered by test-release.yml.
  • A workflow_dispatch run now builds and uploads binaries as artifacts for validation without creating a release (release creation is gated to tag pushes).
  • The dependency-graph plugin build uses a cross-platform copy step that no longer breaks the Windows desktop build.