Skip to content

ci: speed up Font delivery quality without weakening checks - #12

Merged
joeblau merged 2 commits into
mainfrom
cursor/speed-up-font-quality-ci-b9c4
Oct 16, 2026
Merged

joeblau merged 2 commits into
mainfrom
cursor/speed-up-font-quality-ci-b9c4

Conversation

@joeblau

@joeblau joeblau commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Speed up the Font delivery quality workflow without dropping any existing checks.

Changes

  • Job-level path filter instead of on.pull_request.paths, so the workflow always starts. Unrelated PRs skip the expensive jobs (skipped = success); required checks are not left pending. A docs aggregator still fails if any browser shard fails, so splitting the matrix does not weaken a required docs check.
  • Cache Playwright browsers (~/.cache/ms-playwright), keyed per OS + browser + lockfile.
  • Cache generated npm font build output (packages/npm/{fonts,css,native,manifest.json,…}), keyed on a hash of the source fonts, CSS, and build scripts. Tests and npm pack still run against the restored output.
  • Shard production browser checks with a chromium / firefox / webkit matrix (--project + --workers=1). Lint, typecheck, docs build, and unit tests stay once in docs-build.

All previous commands still run: package build (or cache restore of the same artifacts), npm test, next-fixture check/build/export, pack, lint, typecheck, docs build, unit tests, and Playwright against Chromium, Firefox, and WebKit.

Duration

Before (run 38672434303): 9m6s wall (nearby success 8m34s, the ~8.6 min baseline)

  • docs 9m2s, of which production browser checks 7m10s (Chromium + Firefox + WebKit sequential)
  • assets 7m44s, of which font generate 3m4s and npm test 4m0s

After, cold caches (run 38936760197): 7m56s wall, all checks green

  • Font generate 3m1s (miss) + npm test 4m3s; Playwright browsers downloaded per shard
  • Docs path ~4m43s with shards in parallel (WebKit 3m45s longest)

After, warm caches (run 38938016970): 5m58s wall, all checks green

  • Font-build cache hit (generate skipped); Playwright caches hit for Chromium, Firefox, and WebKit
  • assets 4m35s (npm test still 3m48s)
  • Browser shards still ran the full --workers=1 production suite

Steady-state wall clock is about 3 minutes faster than the 9m6s before run (~34%), and about 2.5 minutes faster than the 8.6 min baseline. First-run (cold cache) is already ~1 minute faster from sharding alone.

Open in Web Open in Cursor 

cursoragent and others added 2 commits October 16, 2026 17:03
Skip the suite at the job level when unrelated paths change so required
checks still report. Cache Playwright browsers and the generated npm
font build, and shard production browser checks per engine.

Co-authored-by: Joe Blau <[email protected]>
Keep the quality suite honest after a restore, and re-run CI against
warm Playwright and font-build caches.

Co-authored-by: Joe Blau <[email protected]>
@joeblau
joeblau merged commit f80770e into main Oct 16, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants