authorgravatar for me@t3.ggTheo Browne <me@t3.gg> 2026-09-30 21:47:13-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-09-30 21:47:13-07:00
log8630e1ac7a94cdae6f3014161db65385931cf3a2
tree4c49e41c74eff1d26ac74e378250f6e0bfe4a411
parent6f8e2534f2d935e6befa7353a003c4b59fe66f6f
signature Signed by PGP key B5690EEEBB952194

perf(release): trim Windows packaging setup (#14037)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

1 files changed, 15 insertions(+), 16 deletions(-)

.github/workflows/release-desktop.yml+15-16
......@@ -109,6 +109,9 @@ jobs:
109109 # This repository is public, so Git needs no credentials. checkout's
110110 # credential cleanup runs submodule foreach even with submodules disabled,
111111 # which fails on the orphaned gitlinks in our vendored .repos tree.
112 # checkout.workers=0 writes the files on every core. Alternating both ways
113 # in one job on the Windows runners, it wrote the files about 10s faster
114 # (about 40% on arm64).
112115 - name: Checkout
113116 shell: bash
114117 env:
......@@ -120,8 +123,14 @@ jobs:
120123 git remote add origin "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git"
121124 git fetch --no-tags --depth=1 origin "$CHECKOUT_REF"
122125 git sparse-checkout set --no-cone '/*' '!/.repos/'
123 git checkout --detach FETCH_HEAD
124
126 git -c checkout.workers=0 checkout --detach FETCH_HEAD
127
128 # Windows installs straight from the registry. There, linking the packages
129 # takes the time, not downloading them, so a ~700 MB package cache did not
130 # pay for its own restore. Across recent nightlies, restore plus install
131 # took 183-233s on arm64 and 116-172s on x64, while a plain install took
132 # 142-210s and 84-160s. The arm64 entries also filled 4 GB of the
133 # repository's 10 GB Actions cache.
125134 - name: Setup Vite+
126135 uses: voidzero-dev/setup-vp@250f29ce396baf5e8f24498e17c0dfdebabc26eb # v1
127136 with:
......@@ -129,19 +138,6 @@ jobs:
129138 cache: ${{ inputs.platform != 'win' }}
130139 run-install: false
131140
132 - name: Resolve Windows package cache path
133 if: inputs.platform == 'win'
134 id: package_cache_path
135 shell: pwsh
136 run: '"path=$(vp pm cache dir)" >> $env:GITHUB_OUTPUT'
137
138 - name: Cache Windows packages
139 if: inputs.platform == 'win'
140 uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6
141 with:
142 path: ${{ steps.package_cache_path.outputs.path }}
143 key: windows-release-packages-v1-${{ inputs.arch }}-${{ hashFiles('pnpm-lock.yaml') }}
144
145141 # pnpm checks the lockfile and policy before reusing this result. A missing
146142 # artifact leaves the cache empty, so installation runs the checks again.
147143 - name: Download dependency verification
......@@ -217,8 +213,11 @@ jobs:
217213 name: cli-linux-${{ inputs.arch }}
218214 path: wsl-runtime
219215
216 # Only the resource monitor build needs these libraries. With a cached
217 # monitor, the desktop build's preflight skips its MSVC check, and node-pty
218 # ships prebuilt Windows binaries, so the 30-60s install is skipped too.
220219 - name: Install Spectre-mitigated MSVC libs
221 if: inputs.platform == 'win'
220 if: inputs.platform == 'win' && steps.resource_monitor_cache.outputs.cache-hit != 'true'
222221 shell: pwsh
223222 run: |
224223 $vswhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe"