mirror of
				https://github.com/dtolnay/rust-toolchain.git
				synced 2025-11-04 06:42:00 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			107 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
	
		
			2.6 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@v4
 | 
						|
      - 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.
 | 
						|
  </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
 |