Skip to content

ci: shorten pull request feedback - #564

Merged
kevintseng merged 2 commits into
mainfrom
ci/faster-pr-feedback
Sep 30, 2026
Merged

kevintseng merged 2 commits into
mainfrom
ci/faster-pr-feedback

Conversation

@kevintseng

Copy link
Copy Markdown
Contributor

Refs #563

The two Windows legs set the pace of every pull request: about 31 minutes each on run 36757693602, against 1–9 minutes for every other job. Their tests ran about four times slower than on ubuntu (1556 s against 373 s of test time), most of it in tests that create a temp folder and a SQLite database each time. On the Windows runner those temp folders were on C:, while the workspace and runner.temp are on D:.

  • The test step sets TEMP and TMP to runner.temp. On ubuntu and macOS Node reads TMPDIR first; where it is unset, temp also moves to runner.temp.
  • Lint runs once per leg, inside npm run verify:release, instead of twice.
  • The coverage floor runs in the ubuntu/Node 24 leg instead of a separate job that ran the same suite on the same OS and Node again.
  • The packaged dashboard e2e runs inside SDLC verify (Node 22, as before) instead of a separate job.
  • Tests pin that none of these steps can be skipped or removed quietly, that the coverage thresholds are not lowered, and that Windows stays in the matrix.

Every OS/Node combination still runs the full suite. The speed-up is measured by this pull request's own run, not claimed in advance.

Required checks. The Coverage floor and Packaged Dashboard E2E Smoke jobs no longer exist. Their work runs in Build & Test (ubuntu-latest, Node 24) and SDLC verify, which are already required, so those two contexts must be removed from branch protection before this can merge.

- The test step puts TEMP/TMP on the runner's temp disk. On Windows, TEMP
  pointed at the OS disk (C:) while the workspace and runner.temp are on
  D:, and the suite creates a temp folder and a SQLite database per test;
  the Windows legs spent 1556 s of test time against 373 s on ubuntu.
  Node reads TMPDIR on ubuntu and macOS, so nothing changes there.
- Matrix legs no longer lint twice: verify:release already runs
  `npm run lint` first, in the same leg.
- The ubuntu/Node 24 leg runs the suite with the coverage floor instead of
  a separate job running the same suite on the same OS and Node again.
- The packaged dashboard e2e runs inside SDLC verify, which already ran the
  same command on the same OS and Node; the separate job is gone.
- Tests pin that the coverage leg exists, that the coverage thresholds are
  not lowered, and that the verify:release, coverage, SDLC verify and
  temp-folder settings cannot be skipped or removed quietly.
- The comment on the test step's TEMP/TMP now says that ubuntu and macOS
  read TMPDIR first, and that where it is unset temp moves to runner.temp.
- Tests pin that verify:release still starts with `npm run lint`, and that
  the matrix still includes windows-latest.
@kevintseng
kevintseng merged commit 8c10143 into main Sep 30, 2026
12 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.

1 participant