diff --git a/CHANGELOG.md b/CHANGELOG.md index 2df3a68..20b53bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.14.0] - 2025-08-23 + +* Add new parameters `cache-all-crates` and `cache-workspace-crates` that are propagated to `Swatinem/rust-cache` as `cache-all-crates` and `cache-workspace-crates` + ## [1.13.0] - 2025-06-16 * Add new parameter `cache-provider` that is propagated to `Swatinem/rust-cache` as `cache-provider` (#65 by @mindrunner) diff --git a/README.md b/README.md index 572dffa..6c7ca03 100644 --- a/README.md +++ b/README.md @@ -48,22 +48,24 @@ If no `toolchain` value or toolchain file is present, it will default to `stable First, all items specified in the toolchain file are installed. Afterward, the `components` and `target` specified via inputs are installed in addition to the items from the toolchain file. -| Name | Description | Default | -| ------------------- | ----------------------------------------------------------------------------------------------------------------------- | ------------- | -| `toolchain` | Comma-separated list of Rustup toolchain specifier e.g. `stable`, `nightly`, `1.42.0`. The last version is the default. | stable | -| `target` | Additional target support to install e.g. `wasm32-unknown-unknown` | | -| `components` | Comma-separated string of additional components to install e.g. `clippy, rustfmt` | | -| `cache` | Automatically configure Rust cache (using [`Swatinem/rust-cache`]) | true | -| `cache-directories` | Propagates the value to [`Swatinem/rust-cache`] | | -| `cache-workspaces` | Propagates the value to [`Swatinem/rust-cache`] | | -| `cache-on-failure` | Propagates the value to [`Swatinem/rust-cache`] | true | -| `cache-key` | Propagates the value to [`Swatinem/rust-cache`] as `key` | | -| `cache-shared-key` | Propagates the value to [`Swatinem/rust-cache`] as `shared-key` | | -| `cache-bin` | Propagates the value to [`Swatinem/rust-cache`] as `cache-bin` | true | -| `cache-provider` | Propagates the value to [`Swatinem/rust-cache`] as `cache-provider` | 'github' | -| `matcher` | Enable problem matcher to surface build messages and formatting issues | true | -| `rustflags` | Set the value of `RUSTFLAGS` (set to empty string to avoid overwriting existing flags) | "-D warnings" | -| `override` | Setup the last installed toolchain as the default via `rustup override` | true | +| Name | Description | Default | +| ------------------------ | ----------------------------------------------------------------------------------------------------------------------- | ------------- | +| `toolchain` | Comma-separated list of Rustup toolchain specifier e.g. `stable`, `nightly`, `1.42.0`. The last version is the default. | stable | +| `target` | Additional target support to install e.g. `wasm32-unknown-unknown` | | +| `components` | Comma-separated string of additional components to install e.g. `clippy, rustfmt` | | +| `cache` | Automatically configure Rust cache (using [`Swatinem/rust-cache`]) | true | +| `cache-directories` | Propagates the value to [`Swatinem/rust-cache`] | | +| `cache-workspaces` | Propagates the value to [`Swatinem/rust-cache`] | | +| `cache-on-failure` | Propagates the value to [`Swatinem/rust-cache`] | true | +| `cache-key` | Propagates the value to [`Swatinem/rust-cache`] as `key` | | +| `cache-shared-key` | Propagates the value to [`Swatinem/rust-cache`] as `shared-key` | | +| `cache-bin` | Propagates the value to [`Swatinem/rust-cache`] as `cache-bin` | true | +| `cache-provider` | Propagates the value to [`Swatinem/rust-cache`] as `cache-provider` | 'github' | +| `cache-all-crates` | Propagates the value to [`Swatinem/rust-cache`] as `cache-all-crates` | false | +| `cache-workspace-crates` | Propagates the value to [`Swatinem/rust-cache`] as `cache-workspace-crates` | false | +| `matcher` | Enable problem matcher to surface build messages and formatting issues | true | +| `rustflags` | Set the value of `RUSTFLAGS` (set to empty string to avoid overwriting existing flags) | "-D warnings" | +| `override` | Setup the last installed toolchain as the default via `rustup override` | true | [`Swatinem/rust-cache`]: https://github.com/Swatinem/rust-cache diff --git a/action.yml b/action.yml index 6453e7c..328965d 100644 --- a/action.yml +++ b/action.yml @@ -32,7 +32,7 @@ inputs: description: "Additional non workspace directories to be cached, separated by newlines." required: false cache-on-failure: - description: "Also cache on workflow failures" + description: "Cache even if the build fails." default: "true" required: false cache-key: @@ -46,9 +46,17 @@ inputs: required: false default: "true" cache-provider: - description: "Determines which provider to use for caching. Options are github or buildjet, defaults to github." + description: "Determines which provider to use for caching. Options are github, buildjet, or warpbuild. Defaults to github." required: false default: "github" + cache-all-crates: + description: "Determines which crates are cached. If `true` all crates will be cached, otherwise only dependent crates will be cached." + required: false + default: "false" + cache-workspace-crates: + description: "Determines which crates are cached. If `true` all crates will be cached, otherwise only dependent crates will be cached." + required: false + default: "false" matcher: description: "Enable the Rust problem matcher" required: false @@ -138,7 +146,7 @@ runs: run: | if ! command -v rustup &> /dev/null ; then curl --proto '=https' --tlsv1.2 --retry 10 --retry-connrefused -fsSL "https://sh.rustup.rs" | sh -s -- --default-toolchain none -y - + # Resolve the correct CARGO_HOME path depending on OS if [[ "$RUNNER_OS" == "Windows" ]]; then echo "${CARGO_HOME:-$USERPROFILE/.cargo}/bin" | sed 's|/|\\|g' >> $GITHUB_PATH @@ -219,5 +227,7 @@ runs: cache-on-failure: ${{inputs.cache-on-failure}} cache-bin: ${{inputs.cache-bin}} cache-provider: ${{inputs.cache-provider}} + cache-all-crates: ${{inputs.cache-all-crates}} + cache-workspace-crates: ${{inputs.cache-workspace-crates}} key: ${{inputs.cache-key}} shared-key: ${{inputs.cache-shared-key}}