mirror of
https://github.com/actions-rust-lang/setup-rust-toolchain.git
synced 2025-12-27 01:54:20 -05:00
Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1780873c7b | ||
|
|
063a3b947b | ||
|
|
f89a806691 | ||
|
|
51897173ae | ||
|
|
d6688fbd7a | ||
|
|
02be93da58 | ||
|
|
69e4802460 | ||
|
|
183cfebcbd | ||
|
|
2fcdc490d6 | ||
|
|
89d3d963c9 | ||
|
|
1812c7dfe1 | ||
|
|
fd2478fbf0 | ||
|
|
4222ef9487 | ||
|
|
0be57f121b | ||
|
|
7659442a2c | ||
|
|
40ca850926 | ||
|
|
426e06d077 |
2
.github/workflows/autotag-releases.yml
vendored
2
.github/workflows/autotag-releases.yml
vendored
@@ -15,7 +15,7 @@ jobs:
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
- name: Get version from tag
|
||||
id: tag_name
|
||||
run: |
|
||||
|
||||
4
.github/workflows/ci.yml
vendored
4
.github/workflows/ci.yml
vendored
@@ -32,7 +32,7 @@ jobs:
|
||||
- "beta"
|
||||
- "stable"
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
|
||||
# Test toolchain file support
|
||||
- name: Write rust-toolchain.toml
|
||||
@@ -93,7 +93,7 @@ jobs:
|
||||
name: Cache
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
|
||||
- name: Install Rust
|
||||
uses: ./
|
||||
|
||||
16
CHANGELOG.md
16
CHANGELOG.md
@@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [1.15.2] - 2025-10-04
|
||||
|
||||
* Fix: Run the version detection steps in the selected `rust-src-dir` directory.
|
||||
This should enable the version selection even without a default toolchain installed.
|
||||
Fixes #74.
|
||||
|
||||
## [1.15.1] - 2025-09-23
|
||||
|
||||
* Update `Swatinem/rust-cache` to v2.8.1
|
||||
|
||||
## [1.15.0] - 2025-09-14
|
||||
|
||||
* Add support for non-root source directory.
|
||||
Accept source code and `rust-toolchain.toml` file in subdirectories of the repository.
|
||||
Adds a new parameter `rust-src-dir` that controls the lookup for toolchain files and sets a default value for the `cache-workspace` input. (#69 by @Kubaryt)
|
||||
|
||||
## [1.14.1] - 2025-08-28
|
||||
|
||||
* Pin `Swatinem/rust-cache` action to a full commit SHA (#68 by @JohnTitor)
|
||||
|
||||
41
README.md
41
README.md
@@ -21,7 +21,7 @@ jobs:
|
||||
name: cargo test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||
- run: cargo test --all-features
|
||||
|
||||
@@ -30,7 +30,7 @@ jobs:
|
||||
name: cargo fmt
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
# Ensure rustfmt is installed and setup problem matcher
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||
with:
|
||||
@@ -48,24 +48,25 @@ 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' |
|
||||
| `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 |
|
||||
| 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`]. Influenced by the value of `rust-src-dir`. | |
|
||||
| `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 |
|
||||
| `rust-src-dir` | Path from root directory to directory with the Rust source directory (if its not in the root of the repository). Sets a default value for `cache-workspaces` that enables caching. | |
|
||||
|
||||
[`Swatinem/rust-cache`]: https://github.com/Swatinem/rust-cache
|
||||
|
||||
|
||||
25
action.yml
25
action.yml
@@ -69,6 +69,9 @@ inputs:
|
||||
description: "Setup the last installed toolchain as the default via `rustup override`"
|
||||
required: false
|
||||
default: "true"
|
||||
rust-src-dir:
|
||||
description: "Specify path from root directory to the Rust source directory. By default root directory will be used."
|
||||
required: false
|
||||
|
||||
outputs:
|
||||
rustc-version:
|
||||
@@ -163,9 +166,23 @@ runs:
|
||||
targets: ${{inputs.target}}
|
||||
components: ${{inputs.components}}
|
||||
override: ${{inputs.override}}
|
||||
rust_src_dir: ${{inputs.rust-src-dir}}
|
||||
shell: bash
|
||||
run: |
|
||||
if [[ -z "$toolchain" && ( -f "rust-toolchain" || -f "rust-toolchain.toml" ) ]]
|
||||
# Check if value is set
|
||||
if [[ -n "$rust_src_dir" ]]
|
||||
then
|
||||
# If value is set the directory must exist
|
||||
if [[ -d "$rust_src_dir" ]]
|
||||
then
|
||||
cd "$rust_src_dir"
|
||||
else
|
||||
echo "'rust-src-dir' does not point to an existing directory" >&2
|
||||
echo "The value of 'rust-src-dir' is: ${rust_src_dir}" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
if [[ -z "$toolchain" && ( -f "rust-toolchain" || -f "rust-toolchain.toml") ]]
|
||||
then
|
||||
# Install the toolchain as specified in the file
|
||||
# rustup show is the old way that implicitly installed a toolchain
|
||||
@@ -194,6 +211,8 @@ runs:
|
||||
- id: versions
|
||||
name: Print installed versions
|
||||
shell: bash
|
||||
# Switch to the Rust sub-directory
|
||||
working-directory: ${{inputs.rust-src-dir || '.'}}
|
||||
run: |
|
||||
echo "rustc-version=$(rustc --version)" >> $GITHUB_OUTPUT
|
||||
rustc --version --verbose
|
||||
@@ -220,9 +239,9 @@ runs:
|
||||
|
||||
- name: Setup Rust Caching
|
||||
if: inputs.cache == 'true'
|
||||
uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
|
||||
uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1
|
||||
with:
|
||||
workspaces: ${{inputs.cache-workspaces}}
|
||||
workspaces: ${{ inputs.cache-workspaces || inputs.rust-src-dir }}
|
||||
cache-directories: ${{inputs.cache-directories}}
|
||||
cache-on-failure: ${{inputs.cache-on-failure}}
|
||||
cache-bin: ${{inputs.cache-bin}}
|
||||
|
||||
Reference in New Issue
Block a user