From cb4b6ca24310f08cddbb1b86facf0b1d24cf22f6 Mon Sep 17 00:00:00 2001 From: Ytallo Layon Date: Fri, 7 Aug 2026 07:22:48 -0300 Subject: [PATCH 1/2] fix(ci): save the plain harness-e2e rust cache Since the daily lane moved to coverage: false, save-if driven by the coverage input meant no run ever wrote the plain harness-e2e key, so every registry-lane build job compiled and downloaded from scratch. Save both keys so daily and deployed builds restore a warm cache. --- .github/workflows/_harness-e2e.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/_harness-e2e.yml b/.github/workflows/_harness-e2e.yml index a9c6f6b96..78b99636c 100644 --- a/.github/workflows/_harness-e2e.yml +++ b/.github/workflows/_harness-e2e.yml @@ -294,9 +294,11 @@ jobs: uses: Swatinem/rust-cache@v2 with: # Instrumented builds have different fingerprints; keep them on their - # own key so coverage runs never poison the normal cache. + # own key so coverage runs never poison the normal cache. Both lanes + # save their own key: with coverage-only saving, the plain key was + # never written and every registry-lane build compiled from scratch. shared-key: ${{ inputs.coverage && 'harness-e2e-coverage' || 'harness-e2e' }} - save-if: ${{ inputs.coverage }} + save-if: true workspaces: | harness -> target database -> target From be6a71b8e432609000ff5415123fbb605e9f1e68 Mon Sep 17 00:00:00 2001 From: Ytallo Layon Date: Fri, 7 Aug 2026 08:10:38 -0300 Subject: [PATCH 2/2] fix(ci): set up pnpm for registry-lane e2e builds Since #686 embedded the harness console UI, harness/build.rs needs pnpm whenever the crate compiles from scratch. The Test/Lint E2E crate steps compile harness in every stack mode, but Setup pnpm/Node were gated to source mode, so the first cold registry-lane build (today's daily) panicked with 'pnpm not found on PATH'. --- .github/workflows/_harness-e2e.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/_harness-e2e.yml b/.github/workflows/_harness-e2e.yml index 78b99636c..ae47da47b 100644 --- a/.github/workflows/_harness-e2e.yml +++ b/.github/workflows/_harness-e2e.yml @@ -179,15 +179,14 @@ jobs: with: ref: ${{ inputs.source_ref }} - # state/build.rs builds its embedded UI when the checked-out assets are - # stale, so the isolated E2E build needs the same Node/pnpm toolchain as - # the regular CI worker builds. + # state/build.rs and harness/build.rs build their embedded UIs when the + # checked-out assets are stale, and the harness crate compiles in every + # stack mode (Test/Lint E2E crate), so both lanes need the same + # Node/pnpm toolchain as the regular CI worker builds. - name: Setup pnpm - if: inputs.stack_mode == 'source' uses: pnpm/action-setup@v5 - name: Setup Node - if: inputs.stack_mode == 'source' uses: actions/setup-node@v5 with: node-version: 22