ci: parallelize reference-implementation's single 45-min job - #178
Merged
Conversation
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>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
reference-implementation.yml'sverifyjob ("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 theTest reference implementationstep alone at 1027s median (CI speed report, item fix(stream): reduce mobile control occlusion and lock background scroll #2).typecheck-reference,typecheck-console,test-console,owner-journey-and-stream-audit,test-reference-implementation,drift-check) that each depend on a sharedclassifyjob'sreference_impactingoutput — non-reference-impacting PRs still short-circuit cheaply, exactly as before.verifyjob, kept under the original job nametypecheck + full test suite, aggregates all sub-job results withif: 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/rulesetsthat the only required status check onmainisDCO— this job is not itself a required-check context — but the terminalverifyjob 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
actionlintclean