mirror of
https://github.com/dtolnay/rust-toolchain.git
synced 2024-11-14 21:46:35 +02:00
109 lines
2.9 KiB
Markdown
109 lines
2.9 KiB
Markdown
# Install Rust Toolchain
|
|
|
|
This GitHub Action installs a Rust toolchain using rustup. It is designed for
|
|
one-line concise usage and good defaults.
|
|
|
|
<br>
|
|
|
|
## Example workflow
|
|
|
|
```yaml
|
|
name: test suite
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
test:
|
|
name: cargo test
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- 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.42.0" pulls in
|
|
1.42.0.
|
|
|
|
<br>
|
|
|
|
## Inputs
|
|
|
|
All inputs are optional.
|
|
|
|
<table>
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
<tr>
|
|
<td><code>toolchain</code></td>
|
|
<td>
|
|
Rustup toolchain specifier e.g. <code>stable</code>, <code>nightly</code>, <code>1.42.0</code>, <code>nightly-2022-01-01</code>.
|
|
<b>Important: the default is to match the @rev as described above.</b>
|
|
When passing an explicit <code>toolchain</code> as an input instead of @rev, you'll want to use "dtolnay/rust-toolchain@master" as the revision of the action.
|
|
<b>Also important: use quotes to ensure that the right toolchain version is passed to this GitHub Action.</b>
|
|
For example, specify <code>toolchain: '1.70'</code> (with quotes) because <code>toolchain: 1.70</code> will be parsed as <code>toolchain: 1.7</code>.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>targets</code></td>
|
|
<td>Comma-separated string of additional targets to install e.g. <code>wasm32-unknown-unknown</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>components</code></td>
|
|
<td>Comma-separated string of additional components to install e.g. <code>clippy, rustfmt</code></td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
|
|
## Outputs
|
|
|
|
<table>
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
<tr>
|
|
<td><code>cachekey</code></td>
|
|
<td>A short hash of the installed rustc version, appropriate for use as a cache key. <code>"20220627a831"</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>name</code></td>
|
|
<td>Rustup's name for the selected version of the toolchain, like <code>"1.62.0"</code>. Suitable for use with <code>cargo +${{steps.toolchain.outputs.name}}</code>.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
|
|
## Toolchain expressions
|
|
|
|
The following forms are available for projects that use a sliding window of
|
|
compiler support.
|
|
|
|
```yaml
|
|
# 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'
|
|
```
|
|
|
|
```yaml
|
|
# 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'
|
|
```
|
|
|
|
<br>
|
|
|
|
## License
|
|
|
|
The scripts and documentation in this project are released under the [MIT
|
|
License].
|
|
|
|
[MIT License]: LICENSE
|