20 Commits
v1.4 ... v1.6.0

Author SHA1 Message Date
c7e1de2846 Update CHANGELOG.md 2023-12-04 00:16:34 +01:00
24c9dd087b Merge pull request #24 from obi1kenobi/patch-1 2023-12-04 00:15:38 +01:00
74a4154991 Merge pull request #27 from oxideai/feature/config-matcher 2023-12-04 00:13:10 +01:00
84ba0c9d1b Update README 2023-11-30 11:45:35 +01:00
51173b3da4 feature(matcher): allow disabling problem matcher 2023-11-30 11:42:45 +01:00
33678a48c0 Add docs for the cachekey output to the README
It seems like it's being output, just wasn't documented: https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/action.yml#L144
2023-10-17 22:01:06 -04:00
317ed62323 Update example workflow in readme 2023-10-03 18:55:16 +02:00
8cb8f77172 Merge pull request #23 from actions-rust-lang/dependabot/github_actions/actions/checkout-4
Bump actions/checkout from 3 to 4
2023-10-01 10:55:40 +02:00
1f541c5b05 Bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-01 07:14:31 +00:00
f3c84ee10b Merge pull request #18 from JeanMertz/rustflags 2023-05-29 21:44:44 +02:00
1ef811fbfb Restore behavior to not touch existing RUSTFLAGS variable
Add changelog
2023-05-29 21:38:39 +02:00
70241ab2e9 fixes 2023-05-29 21:27:29 +02:00
823a4a135d fixes 2023-05-29 21:27:29 +02:00
aaa7eef1a2 requred -> required 2023-05-29 21:27:29 +02:00
24274e4435 allow disabling RUSTFLAGS config 2023-05-29 21:27:29 +02:00
cf60eafd0a Merge pull request #19 from actions-rust-lang/better-toolchain-support 2023-05-29 20:43:47 +02:00
289d5e6164 Add changelog 2023-05-29 20:31:27 +02:00
661e2d23dd Explain the new behavior in the README 2023-05-20 18:03:52 +02:00
b065e5ab9f Install components and targets after installing everything from the rust-toolchain file 2023-05-20 16:49:42 +02:00
03aaf6be76 Check that listed components are installed even with a rust-toolchain file 2023-05-20 16:29:33 +02:00
5 changed files with 83 additions and 20 deletions

View File

@ -15,7 +15,7 @@ jobs:
permissions:
contents: write
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Get version from tag
id: tag_name
run: |

View File

@ -29,7 +29,7 @@ jobs:
"macos-latest",
]
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
# Test toolchain file support
- name: Write rust-toolchain.toml
run: |
@ -48,6 +48,7 @@ jobs:
id: toolchain
with:
toolchain: ${{matrix.rust}}
components: clippy
- name: Check ${{'${{steps.toolchain.outputs.rustc-version}}'}}
run: echo '${{steps.toolchain.outputs.rustc-version}}'
- name: Check ${{'${{steps.toolchain.outputs.cargo-version}}'}}
@ -62,4 +63,4 @@ jobs:
# Add tiny empty crate.
# This checks that registry access works.
- run: cargo add serde_as
- run: cargo check
- run: cargo clippy

View File

@ -7,6 +7,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
## [1.6.0] - 2023-12-04
### Added
* Allow disabling problem matchers (#27)
This can be useful when having a matrix of jobs, that produce the same errors.
## [1.5.0] - 2023-05-29
### Added
* Support installing additional components and targets that are not listed in `rust-toolchain` (#14)
Before only the items listed in `rust-toolchain` were installed.
Now all the items from the toolchain file are installed and then all the `target`s and `components` that are provided as action inputs.
This allows installing extra tools only for CI or simplify testing special targets in CI.
* Allow skipping the creation of a `RUSTFLAGS` environment variable.
Cargos logic for rustflags is complicated, and setting the `RUSTFLAGS` environment variable prevents other ways of working.
Provide a new `rustflags` input, which controls the environment variable creation.
If the value is set to the empty string, then `RUSTFLAGS` is not created.
Pre-existing `RUSTFLAGS` variables are never modified by this extension.
## [1.4.4] - 2023-03-18
### Fixed

View File

@ -21,7 +21,7 @@ jobs:
name: cargo test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- 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@v3
- uses: actions/checkout@v4
# Ensure rustfmt is installed and setup problem matcher
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
@ -42,23 +42,42 @@ jobs:
## Inputs
All inputs are optional.
If a [toolchain file](https://rust-lang.github.io/rustup/overrides.html#the-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.
If a [toolchain file](https://rust-lang.github.io/rustup/overrides.html#the-toolchain-file) (i.e., `rust-toolchain` or `rust-toolchain.toml`) is found in the root of the repository, its `toolchain` value takes precedence.
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` | 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 |
| 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 |
| `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" |
### RUSTFLAGS
By default, this action sets the `RUSTFLAGS` environment variable to `-D warnings`.
However, rustflags sources are mutually exclusive, so setting this environment variable omits any configuration through `target.*.rustflags` or `build.rustflags`.
* If `RUSTFLAGS` is already set, no modifications of the variable are made and the original value remains.
* If `RUSTFLAGS` is unset and the `rustflags` input is empty (i.e., the empty string), then it will remain unset.
Use this, if you want to prevent the value from being set because you make use of `target.*.rustflags` or `build.rustflags`.
* Otherwise, the environment variable `RUSTFLAGS` is set to the content of `rustflags`.
To prevent this from happening, set the `rustflags` input to an empty string, which will
prevent the action from setting `RUSTFLAGS` at all, keeping any existing preferences.
You can read more rustflags, and their load order, in the [Cargo reference].
## 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` |
| 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` |
| `cachekey` | A short hash of the installed rustc version |
## License
@ -67,3 +86,4 @@ License].
[MIT License]: LICENSE
[Problem Matchers]: https://github.com/actions/toolkit/blob/main/docs/problem-matchers.md
[Cargo reference]: https://doc.rust-lang.org/cargo/reference/config.html?highlight=unknown#buildrustflags

View File

@ -26,6 +26,14 @@ inputs:
description: "Automatically configure Rust cache"
required: false
default: "true"
matcher:
description: "Enable the Rust problem matcher"
required: false
default: "true"
rustflags:
description: "set RUSTFLAGS environment variable, set to empty string to avoid overwriting build.rustflags"
required: false
default: "-D warnings"
outputs:
rustc-version:
@ -76,8 +84,8 @@ runs:
if [[ ! -v RUST_BACKTRACE ]]; then
echo "RUST_BACKTRACE=short" >> $GITHUB_ENV
fi
if [[ ! -v RUSTFLAGS ]]; then
echo "RUSTFLAGS=-D warnings" >> $GITHUB_ENV
if [[ ( ! -v RUSTFLAGS ) && $NEW_RUSTFLAGS != "" ]]; then
echo "RUSTFLAGS=$NEW_RUSTFLAGS" >> $GITHUB_ENV
fi
# Enable faster sparse index on nightly
# The value is ignored on stable and causes no problems
@ -89,7 +97,10 @@ runs:
echo "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" >> $GITHUB_ENV
fi
shell: bash
env:
NEW_RUSTFLAGS: ${{inputs.rustflags}}
- name: "Install Rust Problem Matcher"
if: inputs.matcher == 'true'
run: echo "::add-matcher::${{ github.action_path }}/rust.json"
shell: bash
@ -108,10 +119,19 @@ runs:
# Install the toolchain as specified in the file
# Might break at some point: https://github.com/rust-lang/rustup/issues/1397
rustup show
if [[ -n $components ]]; then
rustup component add ${components//,/ }
fi
if [[ -n $targets ]]; then
rustup target add ${targets//,/ }
fi
else
rustup toolchain install ${{inputs.toolchain}}${{steps.flags.outputs.targets}}${{steps.flags.outputs.components}} --profile minimal${{steps.flags.outputs.downgrade}} --no-self-update
rustup default ${{inputs.toolchain}}
fi
env:
targets: ${{inputs.target}}
components: ${{inputs.components}}
shell: bash
- name: Print installed versions