Restore behavior to not touch existing RUSTFLAGS variable

Add changelog
This commit is contained in:
Jonas Bushart 2023-05-29 21:38:39 +02:00
parent 70241ab2e9
commit 1ef811fbfb
3 changed files with 13 additions and 5 deletions

View file

@ -15,6 +15,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
Before only the items listed in `rust-toolchain` were installed. 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. 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. 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 ## [1.4.4] - 2023-03-18

View file

@ -57,10 +57,12 @@ Afterward, the `components` and `target` specified via inputs are installed in a
### RUSTFLAGS ### RUSTFLAGS
By default, this action sets the `RUSTFLAGS` environment variable to `-D warnings`. 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`.
However, rustflags sources are mutually exclusive, so setting this environment * If `RUSTFLAGS` is already set, no modifications of the variable are made and the original value remains.
variable omits any configuration through `target.*.rustflags` or * If `RUSTFLAGS` is unset and the `rustflags` input is empty (i.e., the empty string), then it will remain unset.
`build.rustflags`. 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 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. prevent the action from setting `RUSTFLAGS` at all, keeping any existing preferences.

View file

@ -80,7 +80,7 @@ runs:
if [[ ! -v RUST_BACKTRACE ]]; then if [[ ! -v RUST_BACKTRACE ]]; then
echo "RUST_BACKTRACE=short" >> $GITHUB_ENV echo "RUST_BACKTRACE=short" >> $GITHUB_ENV
fi fi
if [[ "$NEW_RUSTFLAGS" != "" ]]; then if [[ ( ! -v RUSTFLAGS ) && $NEW_RUSTFLAGS != "" ]]; then
echo "RUSTFLAGS=$NEW_RUSTFLAGS" >> $GITHUB_ENV echo "RUSTFLAGS=$NEW_RUSTFLAGS" >> $GITHUB_ENV
fi fi
# Enable faster sparse index on nightly # Enable faster sparse index on nightly