From 752d29c146a33fbf016b59595e48ca54d5627ecb Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Tue, 10 Mar 2026 14:38:24 +0700 Subject: [PATCH] Prebuild macOS smoke app in CI --- .github/workflows/desktop-release.yml | 19 ++++++++++--- .../desktop/scripts/managed-daemon-smoke.mjs | 27 ++++++++++--------- 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/.github/workflows/desktop-release.yml b/.github/workflows/desktop-release.yml index 94d0ab0a7..152a0d4e1 100644 --- a/.github/workflows/desktop-release.yml +++ b/.github/workflows/desktop-release.yml @@ -96,15 +96,28 @@ jobs: - name: Build managed runtime for macOS run: npm run prepare:managed-runtime --workspace=@getpaseo/desktop - - name: Smoke check managed runtime for macOS - run: npm run smoke:managed-daemon --workspace=@getpaseo/desktop - - name: Import Apple code-signing certificate uses: apple-actions/import-codesign-certs@v3 with: p12-file-base64: ${{ secrets.APPLE_CERTIFICATE }} p12-password: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} + - name: Build packaged app for macOS smoke + env: + APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }} + APPLE_ID: ${{ secrets.APPLE_ID }} + APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} + APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} + TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} + TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} + run: npm run tauri --workspace=@getpaseo/desktop build -- --target ${{ matrix.rust_target }} + + - name: Smoke check managed runtime for macOS + env: + PASEO_MANAGED_SMOKE_SKIP_BUILD: "1" + PASEO_MANAGED_SMOKE_RUST_TARGET: ${{ matrix.rust_target }} + run: npm run smoke:managed-daemon --workspace=@getpaseo/desktop + - name: Sign bundled managed runtime for macOS env: APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }} diff --git a/packages/desktop/scripts/managed-daemon-smoke.mjs b/packages/desktop/scripts/managed-daemon-smoke.mjs index 9af83e5d6..e126a6f52 100644 --- a/packages/desktop/scripts/managed-daemon-smoke.mjs +++ b/packages/desktop/scripts/managed-daemon-smoke.mjs @@ -26,12 +26,18 @@ const currentRuntimePointer = JSON.parse( const currentRuntimeId = currentRuntimePointer.runtimeId; function resolvePackagedBinary() { + const targetRoot = process.env.PASEO_MANAGED_SMOKE_RUST_TARGET + ? path.join( + desktopRoot, + "src-tauri", + "target", + process.env.PASEO_MANAGED_SMOKE_RUST_TARGET, + "release" + ) + : path.join(desktopRoot, "src-tauri", "target", "release"); if (process.platform === "darwin") { return path.join( - desktopRoot, - "src-tauri", - "target", - "release", + targetRoot, "bundle", "macos", "Paseo.app", @@ -42,10 +48,7 @@ function resolvePackagedBinary() { } if (process.platform === "linux") { return path.join( - desktopRoot, - "src-tauri", - "target", - "release", + targetRoot, "bundle", "appimage", `Paseo_${desktopPackageJson.version}_amd64.AppImage` @@ -53,10 +56,7 @@ function resolvePackagedBinary() { } if (process.platform === "win32") { return path.join( - desktopRoot, - "src-tauri", - "target", - "release", + targetRoot, "Paseo.exe" ); } @@ -358,6 +358,9 @@ function assertNoForbiddenPathsOrPorts(value, forbidden) { } async function ensurePackagedArtifact(binaryPath) { + if (process.env.PASEO_MANAGED_SMOKE_SKIP_BUILD === "1") { + return; + } try { await execFileAsync("npm", ["run", "build"], { cwd: desktopRoot,