You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ci: single-leg coverage and cached utoo package store
Two independent levers to cut CI wall time without adding matrix jobs.
Task A — collect coverage on one matrix leg only:
- add a `coverage` matrix axis (default false) and enable it on a single
ubuntu/node-24 leg via include; an explicit exclude of the base
ubuntu/24/coverage:false combo is required because `include` cannot
overwrite an existing matrix dimension and would otherwise *duplicate*
the ubuntu/24 leg (7 legs instead of 6).
- split "Run tests" into two guarded steps: `ut run ci` (with --coverage)
on the coverage leg, `ut run test` on the other 5. Both reach the same
pretest prep (clean-dist + workspace pretest); only --coverage differs.
- gate the codecov upload on `matrix.coverage` instead of OS, so exactly
one leg uploads. Applied to test, test-egg-bin and test-egg-scripts.
Leg counts are unchanged (6 / 2 / 2); the `done` gate is unaffected.
Task B — cache the utoo package download store:
- `ut install --from pnpm` clones from a content-addressable store
(default `$HOME/.cache/nm`, redirectable via `UTOO_CACHE_DIR`). Pin it
to `${{ runner.temp }}/utoo-store` for a deterministic cross-OS path and
restore/save it with actions/cache before install in every installing
job (typecheck, test, test-egg-bin, test-egg-scripts).
- the repo commits no lockfile (versions live in pnpm-workspace.yaml's
catalog + package.json files), so the cache key hashes those rather than
a non-existent pnpm-lock.yaml; restore-keys fall back to the latest
per-OS store so it warms even on a key miss.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments