Skip to content

Commit fff33f9

Browse files
authored
perf(ci): reuse dependency checks in release builds (#9399)
1 parent 1e05187 commit fff33f9

2 files changed

Lines changed: 27 additions & 0 deletions

File tree

.github/workflows/release.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,8 @@ jobs:
111111
node-version-file: package.json
112112
cache: true
113113
run-install: true
114+
env:
115+
pnpm_config_cache_dir: ${{ runner.temp }}/pnpm-metadata
114116

115117
- id: release_meta
116118
name: Resolve release version
@@ -174,6 +176,14 @@ jobs:
174176
--current-tag "${{ steps.release_meta.outputs.tag }}" \
175177
--github-output
176178
179+
# Share only the verification results, not the large registry metadata cache.
180+
- name: Upload dependency verification
181+
continue-on-error: true
182+
uses: actions/upload-artifact@v7
183+
with:
184+
name: release-dependency-verification
185+
path: ${{ runner.temp }}/pnpm-metadata/lockfile-verified.jsonl
186+
177187
quality:
178188
name: Release quality checks
179189
needs: [preflight]
@@ -446,7 +456,18 @@ jobs:
446456
path: ${{ steps.package_cache_path.outputs.path }}
447457
key: windows-release-packages-v1-${{ matrix.arch }}-${{ hashFiles('pnpm-lock.yaml') }}
448458

459+
# pnpm checks the lockfile and policy before reusing this result. A missing
460+
# artifact leaves the cache empty, so installation runs the checks again.
461+
- name: Download dependency verification
462+
continue-on-error: true
463+
uses: actions/download-artifact@v8
464+
with:
465+
name: release-dependency-verification
466+
path: ${{ runner.temp }}/pnpm-metadata
467+
449468
- name: Install desktop dependencies
469+
env:
470+
pnpm_config_cache_dir: ${{ runner.temp }}/pnpm-metadata
450471
run: vp install --filter=@t3tools/desktop... --filter=t3... --filter=@t3tools/scripts...
451472

452473
- name: Cache resource monitor
@@ -583,6 +604,7 @@ jobs:
583604
- name: Build desktop artifact
584605
shell: bash
585606
env:
607+
pnpm_config_cache_dir: ${{ runner.temp }}/pnpm-metadata
586608
T3CODE_DESKTOP_REUSE_RESOURCE_MONITOR: ${{ steps.resource_monitor_cache.outputs.cache-hit == 'true' }}
587609
CSC_LINK: ${{ secrets.CSC_LINK }}
588610
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}

docs/internals/ci.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,9 @@ signing only when platform credentials are present. macOS passkey builds additio
2828
`APPLE_TEAM_ID` and the `MACOS_PROVISIONING_PROFILE` secret; Windows uses Azure Trusted Signing.
2929
Without the core signing credentials, it still releases unsigned artifacts.
3030

31+
Preflight shares pnpm's lockfile verification results with the desktop build jobs through a small
32+
artifact. This avoids repeating dependency checks, especially on Windows, without transferring the
33+
large registry metadata cache. pnpm checks the current lockfile and policy before it reuses a result.
34+
If the artifact is unavailable, installation runs the checks again.
35+
3136
See [Release Checklist](../operations/release.md) for the full release/signing setup checklist.

0 commit comments

Comments
 (0)