Skip to content

About

Concise GitHub Action for installing a Rust toolchain

Resources

Code of conduct

Security policy

Stars

1.6k stars

Watchers

13 watching

Forks

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Latest commit

 

History

222 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Install Rust Toolchain

This GitHub Action installs a Rust toolchain using rustup. It is designed for one-line concise usage and good defaults.


Example workflow

name: test suite
on: [push, pull_request]

jobs:
  test:
    name: cargo test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - uses: dtolnay/rust-toolchain@stable
      - run: cargo test --all-features

The selection of Rust toolchain is made based on the particular @rev of this Action being requested. For example "dtolnay/rust-toolchain@nightly" pulls in the nightly Rust toolchain, while "dtolnay/rust-toolchain@1.89.0" pulls in 1.89.0.


Inputs

All inputs are optional.

Name Description
toolchain Rustup toolchain specifier e.g. stable, nightly, 1.89.0, nightly-2025-01-01. Important: the default is to match the @rev as described above. When passing an explicit toolchain as an input instead of @rev, you'll want to use "dtolnay/rust-toolchain@master" as the revision of the action.
targets Comma-separated string of additional targets to install e.g. wasm32-unknown-unknown
components Comma-separated string of additional components to install e.g. clippy, rustfmt

Outputs

Name Description
cachekey A short hash of the installed rustc version, appropriate for use as a cache key. "20250627a831"
name Rustup's name for the selected version of the toolchain, like "1.62.0". Suitable for use with cargo +${{steps.toolchain.outputs.name}}.

Toolchain expressions

The following forms are available for projects that use a sliding window of compiler support.

     # Installs the most recent stable toolchain as of the specified time
     # offset, which may be written in years, months, weeks, or days.
  - uses: dtolnay/rust-toolchain@master
    with:
      toolchain: stable 18 months ago
     # Installs the stable toolchain which preceded the most recent one by
     # the specified number of minor versions.
  - uses: dtolnay/rust-toolchain@master
    with:
      toolchain: stable minus 8 releases

Choice of full-length commit SHA

In a workflow that pins the action using a full-length commit SHA (as opposed to something like @nightly or @1.89.0) it is required that you pick a SHA that is within the history of the master branch. Any commit that is not within the history of master will eventually get garbage-collected and your workflows will fail.


License

The scripts and documentation in this project are released under the MIT License.

About

Concise GitHub Action for installing a Rust toolchain

Resources

Code of conduct

Security policy

Stars

1.6k stars

Watchers

13 watching

Forks

Sponsor this project

Used by

Contributors

Languages