ci: the standards build builds the workspaces a change touches #251
Loading…
Reference in a new issue
No description provided.
Delete branch "ci/build-what-changes"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The standards build now builds the workspaces a pull request touches, instead of all 17 for every pull request.
Why
standards-build.ymlbuilt and tested every Rust workspace of the tree on every pull request: 9 legs on the one x86_64 runner, 7 onlinux-arm64, one onmacos, plus the macOS energy job. A change to one standard rebuilt all the others, though none of their inputs had changed. When measured, the x86_64 runner had 90 jobs waiting, most of them these builds.What changes
planjob (onlinux-arm64, seconds) runsscripts/standards-touched.pyon the pull request's own diff (base...head). It selects each workspace whose inputs the change touches:jcp/forjcp/jcp-rs, with its conformance data and documents);fromJSON(needs.plan.outputs.include)). The workspace list moves into the plan job, one- { ... }line each, unchanged, with its comments.Evidence
jcp/builds eight, because jcp is a path dependency of most workspaces.ci-testshowed it creates the legs a plan job lists, and no job at all for a job whoseif:is false.scripts/standards-touched-selftest.shruns in the plan job. It builds a scratch repository and checks each case: a file in no area builds nothing; a path-dependency's area builds its dependents; a file a workspace's source includes builds that workspace; the workflow or the script builds everything; a push builds everything; an uncomputable diff builds everything; emitted entries keep their booleans (z3: true) and quoted values.🤖 Generated with Claude Code