From da0d73c853a4382d524eafb96d7ff2c317804732 Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Thu, 23 Jul 2026 22:56:52 -0700 Subject: [PATCH] fix(release): give desktop closure staging 30min in bun binary builds The CLI full-package build's nested @fusion/desktop build stages the production closure via pnpm deploy (~1300+ packages); on cold-store macOS release runners that exceeded runWorkspaceCommand's default 10-minute timeout and killed every v0.73.0-beta.* bun-darwin-arm64 release leg with exit 143. Raise the desktop sub-build budget to 30 minutes and widen the build-binaries job timeout to 45 minutes to match. Co-Authored-By: Claude Fable 5 --- .github/workflows/release.yml | 5 ++++- packages/cli/tsup.config.ts | 10 +++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7b2faf7f63..d3c3fadbb5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,7 +24,10 @@ jobs: build-binaries: name: Build ${{ matrix.target }} runs-on: ${{ matrix.os }} - timeout-minutes: 30 + # FNXC:Release 2026-07-23-23:05: 45 min (was 30): the desktop pnpm-deploy closure staging + # inside the CLI full-package build can take >10 min alone on cold-store macOS runners + # (killed every v0.73.0-beta.* bun-darwin-arm64 leg); tsup now allows it 30 min. + timeout-minutes: 45 # Job-level env so the signing steps' `if:` can detect whether the # signing certificate secrets are configured (secrets can't be read in `if:` directly). env: diff --git a/packages/cli/tsup.config.ts b/packages/cli/tsup.config.ts index 3f42bfdd8e..f7af42bfa2 100644 --- a/packages/cli/tsup.config.ts +++ b/packages/cli/tsup.config.ts @@ -348,7 +348,15 @@ async function ensureDesktopRuntimeAssetsBuilt() { * The published CLI package must contain the desktop runtime it launches. Build the private desktop package during CLI packaging when dist is absent, but keep this strictly in the repository build path — the installed `fusion desktop` command itself must never run pnpm from an operator's cwd. */ console.log("Desktop runtime assets missing; building @fusion/desktop before staging CLI package assets..."); - await runWorkspaceCommand("pnpm", ["--filter", "@fusion/desktop", "build"], workspaceRoot); + /* + * FNXC:DesktopPackaging 2026-07-23-23:05: + * The desktop build's `pnpm deploy` production-closure staging resolves and installs ~1300+ + * packages; on cold-store macOS release runners this alone exceeded the default 10-minute + * runWorkspaceCommand timeout and killed every v0.73.0-beta.* bun-darwin-arm64 release leg + * (exit 143). Give the desktop sub-build a 30-minute budget; release.yml's job timeout was + * widened to match. + */ + await runWorkspaceCommand("pnpm", ["--filter", "@fusion/desktop", "build"], workspaceRoot, 1_800_000); if (!existsSync(desktopRuntimeSrc)) { throw new Error(`[tsup] Desktop runtime build did not create expected assets at ${desktopRuntimeSrc}`);