Repository navigation
cargo-rail-action v10.1.0
cargo-rail-action v10.1.0 pairs with Cargo-Rail 0.30.0,
the only version it supports and the one every public action installs by default.
The v10 alias now points to this release (4d7bebe671430eee0db376de3f943d8de26e78de).
Highlights
- Workflow audit. Before planning, the planner audits every workflow for Cargo-Rail Action references
and stops on an earlier major version, an input or output this release does not provide,
or aneedsconsumer of an output the planning job does not export.
cargo-rail-action auditruns the same check locally. - Planning evidence transfer. The
evidenceinput accepts a directory of evidence files,
one per recorded work item, so Cargo-Rail 0.30.0 can skip work for changes no compiled unit reads. - Safer plans. Selectors reject a plan created on another platform before checkout verification,
andtarget-argsnarrows Cargo work only when every selected target is an integration test. - Shallow history. Pull-request history fetches authenticate with exactly one repository credential,
and a failed fetch reports a safe cause and one recovery action.
Upgrade notes
- No input or output was removed. Workflows pinned to
@v10move to this release;
pin4d7bebe671430eee0db376de3f943d8de26e78defor an exact reference. - Compiler caches start cold once, because Cargo-Rail 0.30.0 changed its action keys.
- Give remote cache credentials only to trusted jobs: read access exposes every cached result to the job that holds it.
- Run
cargo-rail-action auditfrom this release to check every workflow reference before you upgrade.
Every runtime, the runtime manifest, and LICENSE carry build-provenance attestations:
gh attestation verify cargo-rail-action-x86_64-unknown-linux-gnu -R loadingalias/cargo-rail-actionAll changes
-
The cache action accepts the optional
recent_evictionsrecord that Cargo-Rail's cache status reports
when collection evicts results within a day of their last use,
and still rejects any malformed record. -
Every public action now installs Cargo-Rail 0.30.0 by default,
the only version this release supports.
Plans are still contract v9 and cache status is still schema 18; planning evidence isplanning-evidence-v2,
which 0.30.0 records.
Compiler caches start cold once after the upgrade,
because Cargo-Rail 0.30.0 changed its action keys.
CI tool installation on Linux and Windows now authenticatescargo-binstall's GitHub API lookups,
as macOS already did. -
The cache action now accepts only Cargo-Rail cache status schema 18.
It rejects the retired schema 16, which no Cargo-Rail release has emitted since v0.28.0.
The README states that each Action release supports exactly the Cargo-Rail version in its lock. -
Selectors and the planner now reject a plan created on another platform
before checkout verification.
The error names both platforms and tells the operator to create a plan on this platform.
The README adds a grouped-job example that guards each selector with its own work ID,
and a macOS job that routes on a Linux plan but plans again before reading selectors.
The planner summary now lists the platform, source, Cargo, toolchain,
and target bindings that every selector verifies.
The summary also states whether portable evidence was supplied,
and each widened item names the changed files that lack negative evidence. -
Authenticate shallow pull-request history fetches with exactly one repository credential,
including checkouts that persisted their own credentials.
Report a failed history fetch with a safe cause and one recovery action instead of an exit code.
target-argsnow narrows Cargo work only when every selected target is an integration test. -
The planner's
evidenceinput accepts a directory and passes each*.jsonfile in it to Cargo-Rail,
so a workflow can restore one evidence file per recorded work item and tolerate a cache miss.
The plan reader acceptsplanning-evidence-v2identities, which the matching Cargo-Rail release records,
and the summary reports how many evidence manifests the plan used.
The README shows how to record evidence in default-branch jobs, save it by commit,
and restore the base commit's evidence before planning. -
The README no longer recommends
mode: readfor pull requests and other untrusted jobs.
A job that runs untrusted code gets no remote cache credentials and does not run the cache action,
because read access exposes every cached result to that job.
readis for trusted jobs that must not publish, andread-writefor trusted jobs that seed the cache.
The README also shows how to verify a release asset's attestation withgh attestation verify. -
The planner now audits every tracked or unignored YAML file for Cargo-Rail Action references
before planning, andcargo-rail-action auditruns the same audit locally.
An earlier major version, an input or output the current release does not provide,
aneedsconsumer of an output the planning job does not export, or an unparseable file stops the planner.
Exportingplan-fileas a job output and reading a plan on another runner label produce warnings.