Add actions/setup: consumer tool bootstrap at the Cargo.lock rev - #63
Merged
Conversation
Every consumer hand-rolled the same bootstrap (derive the pin from Cargo.lock, cargo install, pins gate), and the four copies diverged. The composite action owns the CI half — rev-keyed cache included — and actions/README.md now carries the one canonical local recipe so the justfile copies can converge textually. The ci.yml smoke job dogfoods the action from source against a synthetic consumer lock pinned to the commit under test, asserting the outputs and bin names. Fixes #56.
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.
Fixes #56 (umbrella #14). The consumer-side survey found four diverged copies of the same
_ct-toolsbootstrap (webcrypto, websocket, webrtc-datachannels, tls). This owns the CI half upstream:actions/setup: derives rev+url from the consumer'sCargo.lock(crate-name-anchored oncomponent-test-sdk— rename-proof, same rule aspins), caches the install root keyed(os, rev, rust-toolchain.toml), installscomponent-test-cli+component-test-runner(configurable), and runs thepinsgate over the Cargo lock plus any declared JS lockfiles. Outputsrevandbinfor downstream steps.source-pathinstalls from a checkout instead of--git— used by the smoke job here, and the analogue of webcrypto's local-override env.actions/README.md: documents the action and the one canonical local_ct-toolsrecipe consumers should converge on (near-identical copies review sublinearly; the current four variants don't).actions-setup-smoke: dogfoods the action from source with a synthetic consumer lock pinned to the commit under test; asserts outputs and bin names.Adoption PRs on the four consumers follow once this merges (they also delete their per-repo cache stanzas and ct-rev plumbing).