From 426e06d0775ee5e42efa637b577ad33f990b1cd8 Mon Sep 17 00:00:00 2001 From: Kubaryt Date: Wed, 27 Aug 2025 17:23:42 +0200 Subject: [PATCH] enhancement: Add option to specify rust-toolchain.toml path (#47) --- README.md | 1 + action.yml | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6c7ca03..bd3fb9d 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,7 @@ Afterward, the `components` and `target` specified via inputs are installed in a | `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 | +| `rust-toolchain-dir` | Path from root directory to directory with the rust toolchain file (if its not in the root of the repository) | | [`Swatinem/rust-cache`]: https://github.com/Swatinem/rust-cache diff --git a/action.yml b/action.yml index 328965d..0841e54 100644 --- a/action.yml +++ b/action.yml @@ -69,6 +69,9 @@ inputs: description: "Setup the last installed toolchain as the default via `rustup override`" required: false default: "true" + rust-toolchain-dir: + description: "Specify path from root directory to the directory to search for rust-toolchain.toml file. By default root directory will be used." + required: false outputs: rustc-version: @@ -163,14 +166,18 @@ runs: targets: ${{inputs.target}} components: ${{inputs.components}} override: ${{inputs.override}} + rust_toolchain_dir: ${{inputs.rust-toolchain-dir}} shell: bash run: | - if [[ -z "$toolchain" && ( -f "rust-toolchain" || -f "rust-toolchain.toml" ) ]] + if [[ -z "$toolchain" && ( -f "rust-toolchain" || -f "rust-toolchain.toml" || -f "$rust_toolchain_dir/rust-toolchain.toml") ]] then # Install the toolchain as specified in the file # rustup show is the old way that implicitly installed a toolchain # rustup toolchain install is the new explicit way # https://github.com/rust-lang/rustup/issues/3635#issuecomment-2343511297 + if [[ -n "$rust_toolchain_dir" ]]; then + cd "$rust_toolchain_dir" + fi rustup show active-toolchain || rustup toolchain install if [[ -n $components ]]; then rustup component add ${components//,/ }