Skip to content

ci: parallelize reference-implementation's single 45-min job - #178

Merged
tnunamak merged 1 commit into
mainfrom
cifix/item2-reference-impl-split
Aug 21, 2026
Merged

ci: parallelize reference-implementation's single 45-min job#178
tnunamak merged 1 commit into
mainfrom
cifix/item2-reference-impl-split

Conversation

@tnunamak

Copy link
Copy Markdown
Contributor

Summary

  • reference-implementation.yml's verify job ("typecheck + full test suite") ran 2 typechecks, 4 test/audit commands, and the main reference test suite strictly sequentially in one job on one runner — median 1102s, with the Test reference implementation step alone at 1027s median (CI speed report, item fix(stream): reduce mobile control occlusion and lock background scroll #2).
  • Splits the work into independent jobs (typecheck-reference, typecheck-console, test-console, owner-journey-and-stream-audit, test-reference-implementation, drift-check) that each depend on a shared classify job's reference_impacting output — non-reference-impacting PRs still short-circuit cheaply, exactly as before.
  • A terminal verify job, kept under the original job name typecheck + full test suite, aggregates all sub-job results with if: always() so the PR-visible check-run name and pass/fail semantics are byte-identical to before.

Confirmed via gh api repos/PDP-Connect/pdpp/rulesets that the only required status check on main is DCO — this job is not itself a required-check context — but the terminal verify job preserves the exact original name regardless, since the workflow's own comments describe it as required and nothing should rely on that name changing.

No trigger changes, no path-filter changes on any required check.

Test plan

  • actionlint clean
  • YAML validated
  • CI green on this PR, both the reference-impacting path and (via a throwaway docs-only push) the short-circuit path
  • Measure post-merge wall-clock for a reference-impacting PR vs. the 1102s median baseline

verify ("typecheck + full test suite") ran 2 typechecks, 4 test/audit
commands, and the main reference-implementation test suite strictly
sequentially in one job on one runner (median 1102s, driven mostly by
the 1027s "Test reference implementation" step).

Split into independent jobs (typecheck-reference, typecheck-console,
test-console, owner-journey-and-stream-audit,
test-reference-implementation, drift-check) that all depend on a
shared classify job's reference_impacting output, so non-impacting
PRs still short-circuit cheaply. A terminal verify job, kept under
the original "typecheck + full test suite" name, aggregates their
results so the PR-visible check name and pass/fail semantics are
unchanged — only wall-clock for reference-impacting PRs drops, from
the sum of all steps to roughly the length of the slowest shard.

Signed-off-by: Tim Nunamaker <tnunamak@gmail.com>
@vercel

vercel Bot commented Aug 21, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
pdpp Ready Ready Preview Aug 21, 2026 9:26pm

Request Review

@tnunamak
tnunamak merged commit 8e8bed3 into main Aug 21, 2026
12 checks passed
@tnunamak
tnunamak deleted the cifix/item2-reference-impl-split branch August 21, 2026 21:41
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