(b) Windows desktop build flakily failed with "Property 'ok'/'status' does not exist on type 'Response'" because the workspace resolved multiple @types/node versions (incl. an ancient 12.20.55 from @manypkg/find-root that predates global fetch types). plugin-sdk compiles with lib:["ES2022"] and no DOM lib, so Response comes solely from @types/node — nondeterministic across runners. Pin via pnpm.overrides "@types/node": "^25.5.2"; collapses the lockfile to one version. Verified: plugin-sdk build + desktop + full workspace typecheck all pass. Also: build-exe-cross tests cross-compiled all 5 platforms on every CI run (auto-enabled via Boolean(process.env.CI)) — a release-build dependency in the normal lane. Made them opt-in (FUSION_TEST_BUILD_EXE=1) and pointed the root test:slow-cli at the CLI slow lane instead of test:pre-release, so everyday CI no longer depends on release builds. test:pre-release and test-release.yml still validate binaries deliberately. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1.9 KiB
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 (fixes the
@rollup/rollup-linux-arm64-gnubuild crash). - 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-builderdirectly viapnpm execinstead of thedist:*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 --arm64flags. - The desktop build spawns workspace
.cmdbins with a shell on Windows, fixing thespawn EINVALfailure. - The desktop package declares an
authorwith email so the Linux.debtarget (fpm) can build. - The Linux AppImage verify step matches electron-builder's actual x64 output name (
-linux-x86_64.AppImage). @types/nodeis pinned workspace-wide via a pnpm override so the desktop/plugin-sdk build is deterministic (a stale transitive@types/nodelacking globalfetch/Responsetypes intermittently broke the Windows desktop build).- The
build-exe-crosstests 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 bytest-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.