mirror of
https://github.com/actions-rust-lang/setup-rust-toolchain.git
synced 2024-12-26 00:52:17 +01:00
Setup a specific Rust toolchain with extra features like problem matchers
f010a58728
Not all version support the new sparse protocol. While old versions ignore the value, 1.66 and other fail due to unstable features. If such a version is detected, always downgrade to the git protocol. This fixes running the action twice with different toolchains. Even if the first install uses something which supports "sparse", the second run can still downgrade it to "git". Closes #12 |
||
---|---|---|
.github | ||
action.yml | ||
CHANGELOG.md | ||
LICENSE | ||
README.md | ||
rust.json |
Install Rust Toolchain
This GitHub Action installs a Rust toolchain using rustup. It further integrates into the ecosystem. Caching for Rust tools and build artifacts is enabled. Environment variables are set to optimize the cache hits. Problem Matchers are provided for build messages (cargo, clippy) and formatting (rustfmt).
The action is heavily inspired by dtolnay's https://github.com/dtolnay/rust-toolchain and extends it with further features.
Example workflow
name: "Test Suite"
on:
push:
pull_request:
jobs:
test:
name: cargo test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rust-lang/setup-rust-toolchain@v1
- run: cargo test --all-features
# Check formatting with rustfmt
formatting:
name: cargo fmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
# Ensure rustfmt is installed and setup problem matcher
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: rustfmt
- name: Rustfmt Check
uses: actions-rust-lang/rustfmt@v1
Inputs
All inputs are optional.
If a toolchain file (i.e., rust-toolchain
or rust-toolchain.toml
) is found in the root of the repository, it takes precedence.
All input values are ignored if a toolchain file exists.
Name | Description | Default |
---|---|---|
toolchain |
Rustup toolchain specifier e.g. stable , nightly , 1.42.0 . |
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 |
Outputs
Name | Description |
---|---|
rustc-version |
Version as reported by rustc --version |
cargo-version |
Version as reported by cargo --version |
rustup-version |
Version as reported by rustup --version |
License
The scripts and documentation in this project are released under the MIT License.