From 6847abee6eb1b610b67305c493bfa20a9096e434 Mon Sep 17 00:00:00 2001 From: Jonathan Hobman Date: Fri, 27 Mar 2026 22:17:24 +0000 Subject: [PATCH 1/2] fix: add windows desktop CI build --- .github/workflows/ci.yml | 44 ++++++++++++++++++++++++++ apps/marketing/public/favicon.ico | Bin 540 -> 3880 bytes assets/dev/okcode-dev-web-favicon.ico | Bin 540 -> 3880 bytes assets/dev/okcode-dev-windows.ico | Bin 540 -> 33679 bytes assets/prod/okcode-web-favicon.ico | Bin 540 -> 3880 bytes assets/prod/okcode-windows.ico | Bin 540 -> 33679 bytes scripts/build-desktop-artifact.ts | 8 +++++ scripts/generate-brand-assets.py | 4 +-- 8 files changed, 53 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 67b5e3286..cf184dbdd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -73,6 +73,50 @@ jobs: test -f apps/desktop/dist-electron/preload.js grep -nE "desktopBridge|getWsUrl|PICK_FOLDER_CHANNEL|wsUrl" apps/desktop/dist-electron/preload.js + desktop_windows: + name: Windows Desktop Build + runs-on: windows-2022 + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Setup Bun + uses: oven-sh/setup-bun@v2 + with: + bun-version-file: package.json + + - name: Setup Node + uses: actions/setup-node@v6 + with: + node-version-file: package.json + + - name: Cache Bun, Turbo, and electron-builder + uses: actions/cache@v5 + with: + path: | + ~/.bun/install/cache + ~\AppData\Local\electron-builder\Cache + .turbo + key: ${{ runner.os }}-desktop-${{ hashFiles('bun.lock') }}-${{ hashFiles('turbo.json') }} + restore-keys: | + ${{ runner.os }}-desktop-${{ hashFiles('bun.lock') }}- + + - name: Install dependencies + run: bun install --frozen-lockfile + + - name: Build Windows desktop artifact + run: bun run dist:desktop:win + + - name: Upload Windows desktop artifact + uses: actions/upload-artifact@v7 + with: + name: desktop-windows-x64 + path: | + release/*.exe + release/*.exe.blockmap + release/builder-debug.yml + if-no-files-found: error + release_smoke: name: Release Smoke runs-on: ubuntu-24.04 diff --git a/apps/marketing/public/favicon.ico b/apps/marketing/public/favicon.ico index 40d72b10520085b99bd89e6c12ec7aab6f8dd7de..7cdc5b602df431b92c76f5f621b993394906bff2 100644 GIT binary patch delta 3396 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 diff --git a/assets/dev/okcode-dev-web-favicon.ico b/assets/dev/okcode-dev-web-favicon.ico index 40d72b10520085b99bd89e6c12ec7aab6f8dd7de..7cdc5b602df431b92c76f5f621b993394906bff2 100644 GIT binary patch delta 3396 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 diff --git a/assets/dev/okcode-dev-windows.ico b/assets/dev/okcode-dev-windows.ico index 40d72b10520085b99bd89e6c12ec7aab6f8dd7de..371c4c751a170c6aab03b8965c3e193343914dfa 100644 GIT binary patch literal 33679 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 delta 30 icmeBgXPUzz!oa`?gaQH#K%l_D#>BuN#;`Gkg9!jT;R8$n diff --git a/assets/prod/okcode-web-favicon.ico b/assets/prod/okcode-web-favicon.ico index 40d72b10520085b99bd89e6c12ec7aab6f8dd7de..7cdc5b602df431b92c76f5f621b993394906bff2 100644 GIT binary patch delta 3396 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 diff --git a/assets/prod/okcode-windows.ico b/assets/prod/okcode-windows.ico index 40d72b10520085b99bd89e6c12ec7aab6f8dd7de..371c4c751a170c6aab03b8965c3e193343914dfa 100644 GIT binary patch literal 33679 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 delta 30 icmeBgXPUzz!oa`?gaQH#K%l_D#>BuN#;`Gkg9!jT;R8$n diff --git a/scripts/build-desktop-artifact.ts b/scripts/build-desktop-artifact.ts index 75682d91e..4e85b0e68 100644 --- a/scripts/build-desktop-artifact.ts +++ b/scripts/build-desktop-artifact.ts @@ -454,6 +454,10 @@ const createBuildConfig = Effect.fn("createBuildConfig")(function* ( appId: "com.okcode.okcode", productName, artifactName: "OK-Code-${version}-${arch}.${ext}", + // Production dependencies are installed into the staged app ahead of packaging. + // Skip electron-builder's extra native rebuild step so packaged builds can use + // shipped prebuilds like node-pty on Windows instead of requiring local Spectre libs. + npmRebuild: false, directories: { buildResources: "apps/desktop/resources", }, @@ -506,6 +510,10 @@ const createBuildConfig = Effect.fn("createBuildConfig")(function* ( }; if (signed) { winConfig.azureSignOptions = yield* AzureTrustedSigningOptionsConfig; + } else { + // Unsigned local builds shouldn't need the Windows code-signing toolchain or + // rcedit metadata pass; skipping it avoids symlink-privileged cache extraction. + winConfig.signAndEditExecutable = false; } buildConfig.win = winConfig; } diff --git a/scripts/generate-brand-assets.py b/scripts/generate-brand-assets.py index 34cd3e6ed..c0a13093e 100644 --- a/scripts/generate-brand-assets.py +++ b/scripts/generate-brand-assets.py @@ -28,13 +28,11 @@ def resize(img: Image.Image, size: int) -> Image.Image: def save_ico(path: Path, source: Image.Image, sizes: tuple[int, ...]) -> None: - images = [resize(source, s) for s in sizes] path.parent.mkdir(parents=True, exist_ok=True) - images[0].save( + source.save( path, format="ICO", sizes=[(s, s) for s in sizes], - append_images=images[1:], ) From d4b593ce5518f9fb6335e6bb046fb5c38681992f Mon Sep 17 00:00:00 2001 From: Jonathan Hobman Date: Fri, 27 Mar 2026 22:22:56 +0000 Subject: [PATCH 2/2] fix: scope windows packaging workaround --- .github/workflows/ci.yml | 2 +- scripts/build-desktop-artifact.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cf184dbdd..bf1ccf791 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -105,7 +105,7 @@ jobs: run: bun install --frozen-lockfile - name: Build Windows desktop artifact - run: bun run dist:desktop:win + run: bun run dist:desktop:artifact -- --platform win --target nsis --arch x64 --verbose - name: Upload Windows desktop artifact uses: actions/upload-artifact@v7 diff --git a/scripts/build-desktop-artifact.ts b/scripts/build-desktop-artifact.ts index 4e85b0e68..7449676a6 100644 --- a/scripts/build-desktop-artifact.ts +++ b/scripts/build-desktop-artifact.ts @@ -454,10 +454,6 @@ const createBuildConfig = Effect.fn("createBuildConfig")(function* ( appId: "com.okcode.okcode", productName, artifactName: "OK-Code-${version}-${arch}.${ext}", - // Production dependencies are installed into the staged app ahead of packaging. - // Skip electron-builder's extra native rebuild step so packaged builds can use - // shipped prebuilds like node-pty on Windows instead of requiring local Spectre libs. - npmRebuild: false, directories: { buildResources: "apps/desktop/resources", }, @@ -511,6 +507,10 @@ const createBuildConfig = Effect.fn("createBuildConfig")(function* ( if (signed) { winConfig.azureSignOptions = yield* AzureTrustedSigningOptionsConfig; } else { + // Production dependencies are installed into the staged app ahead of packaging. + // Skip electron-builder's extra native rebuild step so Windows builds can use + // shipped prebuilds like node-pty instead of requiring local Spectre libs. + buildConfig.npmRebuild = false; // Unsigned local builds shouldn't need the Windows code-signing toolchain or // rcedit metadata pass; skipping it avoids symlink-privileged cache extraction. winConfig.signAndEditExecutable = false;