From 6dc7773e2ef67a41efbe34cf9db038cd97876ffa Mon Sep 17 00:00:00 2001 From: Piotr Roszatycki Date: Tue, 18 Nov 2025 12:34:18 +0100 Subject: [PATCH 1/7] Bypass environment variables for license generation on Windows --- turbo.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/turbo.json b/turbo.json index cb32d1d00..06ad17a11 100644 --- a/turbo.json +++ b/turbo.json @@ -7,7 +7,11 @@ "CSC_LINK", "CSC_KEY_PASSWORD", "CSC_INSTALLER_LINK", - "CSC_INSTALLER_KEY_PASSWORD" + "CSC_INSTALLER_KEY_PASSWORD", + "COREPACK_*", + "LOCALAPPDATA", + "NVM_*", + "PNPM_*" ], "tasks": { "build": { From 292ac959eb40f55f03b0a218b0eedc728a7d3f43 Mon Sep 17 00:00:00 2001 From: Piotr Roszatycki Date: Tue, 18 Nov 2025 14:10:39 +0100 Subject: [PATCH 2/7] Integration tests: cache Electron headers --- .github/workflows/integration-tests.yaml | 14 ++++++++++++++ turbo.json | 6 +++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/.github/workflows/integration-tests.yaml b/.github/workflows/integration-tests.yaml index efe370e62..0e158bee0 100644 --- a/.github/workflows/integration-tests.yaml +++ b/.github/workflows/integration-tests.yaml @@ -38,6 +38,7 @@ jobs: DO_NOT_TRACK: "1" ELECTRON_CACHE: ${{ github.workspace }}/.cache/electron ELECTRON_BUILDER_CACHE: ${{ github.workspace }}/.cache/electron-builder + ELECTRON_HEADERS_CACHE: ${{ github.workspace }}/.cache/electron-headers PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/.cache/playwright TURBOREPO_CACHE: ${{ github.workspace }}/.turbo @@ -114,6 +115,13 @@ jobs: restore-keys: | ${{ matrix.os }}-${{ matrix.arch }}-electron-builder- + - name: Use Electron headers cache + id: electron-headers + uses: actions/cache@v4 + with: + path: ${{ env.ELECTRON_HEADERS_CACHE }} + key: electron-headers-${{ env.electron_version }} + - name: Use Playwright cache id: playwright-cache uses: actions/cache@v4 @@ -159,6 +167,10 @@ jobs: if: runner.os == 'windows' run: echo "HOME=$HOME" | Out-File -FilePath $env:GITHUB_ENV -Append + - name: Install Electron headers + if: steps.electron-headers.outputs.cache-hit != 'true' + run: curl -sfL https://www.electronjs.org/headers/v${{ env.electron_version }}/node-${{ env.electron_version }}-headers.tar.gz -o ${{ env.ELECTRON_HEADERS_CACHE }}/node-${{ env.electron_version }}-headers.tar.gz + - name: Install Playwright with dependencies if: steps.playwright-cache.outputs.cache-hit != 'true' run: pnpx playwright install --with-deps @@ -179,6 +191,8 @@ jobs: - name: Rebuild native packages for Electron run: pnpm --color=always electron-rebuild -a ${{ matrix.arch }} + env: + npm_package_config_node_gyp_tarball: ${{ env.ELECTRON_HEADERS_CACHE }}/node-${{ env.electron_version }}-headers.tar.gz - name: Build extra resources id: build-resources diff --git a/turbo.json b/turbo.json index 06ad17a11..7f9f5a07a 100644 --- a/turbo.json +++ b/turbo.json @@ -10,8 +10,12 @@ "CSC_INSTALLER_KEY_PASSWORD", "COREPACK_*", "LOCALAPPDATA", + "DOWNLOAD_ALL_ARCHITECTURES", "NVM_*", - "PNPM_*" + "PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD", + "PNPM_*", + "npm_config_*", + "npm_package_config_node_gyp_*" ], "tasks": { "build": { From e99adc8d9b34a3fa63a90ba09a80968211c03e6d Mon Sep 17 00:00:00 2001 From: Piotr Roszatycki Date: Tue, 18 Nov 2025 14:17:16 +0100 Subject: [PATCH 3/7] v --- .github/workflows/integration-tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integration-tests.yaml b/.github/workflows/integration-tests.yaml index 0e158bee0..dc59dcd13 100644 --- a/.github/workflows/integration-tests.yaml +++ b/.github/workflows/integration-tests.yaml @@ -169,7 +169,7 @@ jobs: - name: Install Electron headers if: steps.electron-headers.outputs.cache-hit != 'true' - run: curl -sfL https://www.electronjs.org/headers/v${{ env.electron_version }}/node-${{ env.electron_version }}-headers.tar.gz -o ${{ env.ELECTRON_HEADERS_CACHE }}/node-${{ env.electron_version }}-headers.tar.gz + run: curl -sSfL https://www.electronjs.org/headers/v${{ env.electron_version }}/node-v${{ env.electron_version }}-headers.tar.gz -o ${{ env.ELECTRON_HEADERS_CACHE }}/node-${{ env.electron_version }}-headers.tar.gz - name: Install Playwright with dependencies if: steps.playwright-cache.outputs.cache-hit != 'true' From 58649d2bb6c9c7b1f88bb08214d07a76fc4fc270 Mon Sep 17 00:00:00 2001 From: Piotr Roszatycki Date: Tue, 18 Nov 2025 15:31:10 +0100 Subject: [PATCH 4/7] mkdir -p --- .github/workflows/integration-tests.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/integration-tests.yaml b/.github/workflows/integration-tests.yaml index dc59dcd13..f0dde6ab7 100644 --- a/.github/workflows/integration-tests.yaml +++ b/.github/workflows/integration-tests.yaml @@ -169,7 +169,11 @@ jobs: - name: Install Electron headers if: steps.electron-headers.outputs.cache-hit != 'true' - run: curl -sSfL https://www.electronjs.org/headers/v${{ env.electron_version }}/node-v${{ env.electron_version }}-headers.tar.gz -o ${{ env.ELECTRON_HEADERS_CACHE }}/node-${{ env.electron_version }}-headers.tar.gz + shell: bash + run: | + set -eo pipefail + mkdir -p $ELECTRON_HEADERS_CACHE + curl -sSfL https://www.electronjs.org/headers/v$electron_version/node-v$electron_version-headers.tar.gz -o $ELECTRON_HEADERS_CACHE/node-v$electron_version-headers.tar.gz - name: Install Playwright with dependencies if: steps.playwright-cache.outputs.cache-hit != 'true' @@ -192,7 +196,7 @@ jobs: - name: Rebuild native packages for Electron run: pnpm --color=always electron-rebuild -a ${{ matrix.arch }} env: - npm_package_config_node_gyp_tarball: ${{ env.ELECTRON_HEADERS_CACHE }}/node-${{ env.electron_version }}-headers.tar.gz + npm_package_config_node_gyp_tarball: ${{ env.ELECTRON_HEADERS_CACHE }}/node-v${{ env.electron_version }}-headers.tar.gz - name: Build extra resources id: build-resources From 80ad40db3ad46b676b848eeff4fad80143143b4d Mon Sep 17 00:00:00 2001 From: Piotr Roszatycki Date: Tue, 18 Nov 2025 15:41:14 +0100 Subject: [PATCH 5/7] Electron headers cache for release workflow --- .github/workflows/release.yaml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index f8eb971c1..edb0f519c 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -23,6 +23,7 @@ jobs: DO_NOT_TRACK: "1" ELECTRON_CACHE: ${{ github.workspace }}/.cache/electron ELECTRON_BUILDER_CACHE: ${{ github.workspace }}/.cache/electron-builder + ELECTRON_HEADERS_CACHE: ${{ github.workspace }}/.cache/electron-headers steps: - name: Checkout @@ -152,6 +153,13 @@ jobs: restore-keys: | ${{ matrix.os }}-${{ matrix.arch }}-electron-builder- + - name: Use Electron headers cache + id: electron-headers + uses: actions/cache@v4 + with: + path: ${{ env.ELECTRON_HEADERS_CACHE }} + key: electron-headers-${{ env.electron_version }} + - name: Install pnpm dependencies id: install-pnpm shell: bash @@ -163,6 +171,14 @@ jobs: shell: bash run: pnpm install --color=always --prefer-offline --frozen-lockfile + - name: Install Electron headers + if: steps.electron-headers.outputs.cache-hit != 'true' + shell: bash + run: | + set -eo pipefail + mkdir -p $ELECTRON_HEADERS_CACHE + curl -sSfL https://www.electronjs.org/headers/v$electron_version/node-v$electron_version-headers.tar.gz -o $ELECTRON_HEADERS_CACHE/node-v$electron_version-headers.tar.gz + - name: Enable downloading for all architectures (macOS x64, Linux arm64, Windows arm64) if: runner.os == 'macOS' && matrix.arch == 'x64' || runner.os == 'Linux' && matrix.arch == 'arm64' || runner.os == 'Windows' && matrix.arch == 'arm64' shell: bash @@ -183,6 +199,7 @@ jobs: env: npm_config_arch: ${{ matrix.arch }} npm_config_target_arch: ${{ matrix.arch }} + npm_package_config_node_gyp_tarball: ${{ env.ELECTRON_HEADERS_CACHE }}/node-v${{ env.electron_version }}-headers.tar.gz - name: Build extra resources id: build-resources From 2b0fd3dba336fae9580680c58cba9070b012f472 Mon Sep 17 00:00:00 2001 From: Piotr Roszatycki Date: Tue, 18 Nov 2025 15:45:50 +0100 Subject: [PATCH 6/7] add `--` for all turbo scripts --- package.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 7347a3f0f..0a88eb021 100644 --- a/package.json +++ b/package.json @@ -15,16 +15,16 @@ "biome:check": "corepack pnpm biome check", "biome:fix": "corepack pnpm biome check --fix", "biome:migrate": "corepack pnpm biome migrate --write", - "build": "turbo run build", - "build:app": "turbo run build:app", - "build:app:dir": "corepack pnpm build:app -- dir", + "build": "turbo run build --", + "build:app": "turbo run build:app --", + "build:app:dir": "corepack pnpm build:app dir", "build:core": "cd packages/core && corepack pnpm build", - "build:dev": "NODE_ENV=development turbo run build:dev", + "build:dev": "NODE_ENV=development turbo run build:dev --", "build:freelens": "cd freelens && corepack pnpm build", - "build:resources": "turbo run build:resources", + "build:resources": "turbo run build:resources --", "clean": "corepack pnpm -r clean", "clean:node_modules": "corepack pnpm -r clean:node_modules && corepack pnpm dlx rimraf@6.1.0 node_modules", - "dev": "turbo run dev --parallel", + "dev": "turbo run dev --parallel --", "electron-rebuild": "cd freelens && corepack pnpm electron-rebuild", "start": "cd freelens && corepack pnpm start", "start:os": "corepack pnpm dlx run-script-os@1.1.6 --", From 313c0036f15557ea5b7c62815495c44f0b36e25d Mon Sep 17 00:00:00 2001 From: Piotr Roszatycki Date: Tue, 18 Nov 2025 15:48:29 +0100 Subject: [PATCH 7/7] Workflows without `--` again --- .github/workflows/integration-tests.yaml | 2 +- .github/workflows/release.yaml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/integration-tests.yaml b/.github/workflows/integration-tests.yaml index f0dde6ab7..4add3d6d4 100644 --- a/.github/workflows/integration-tests.yaml +++ b/.github/workflows/integration-tests.yaml @@ -214,7 +214,7 @@ jobs: run: pnpm --color=always build:resources - name: Build Electron app - run: pnpm --color=always build:app:dir -- --${{ matrix.arch }} + run: pnpm --color=always build:app:dir --${{ matrix.arch }} - name: Run integration tests (Linux) id: integration-tests-linux diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index edb0f519c..33ea91887 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -222,7 +222,7 @@ jobs: for var in APPLEID APPLEIDPASS APPLETEAMID CSC_LINK CSC_KEY_PASSWORD CSC_INSTALLER_LINK CSC_INSTALLER_KEY_PASSWORD; do test -n "${!var}" || unset $var done - pnpm --color=always build:app -- \ + pnpm --color=always build:app \ dmg pkg \ --${{ matrix.arch }} env: @@ -300,7 +300,7 @@ jobs: - name: Build Electron app (Linux) if: runner.os == 'Linux' run: | - pnpm --color=always build:app -- \ + pnpm --color=always build:app \ AppImage deb rpm \ --${{ matrix.arch }} @@ -308,7 +308,7 @@ jobs: if: runner.os == 'Windows' shell: bash run: | - pnpm --color=always build:app -- \ + pnpm --color=always build:app \ msi nsis \ --${{ matrix.arch }}