16 Commits
v1.3 ... v1.4.3

Author SHA1 Message Date
64fef3b541 Merge pull request #13 from actions-rust-lang/double-run 2023-02-21 22:23:42 +01:00
cea2ca57ed Add changelog entry 2023-02-21 21:15:17 +00:00
f010a58728 Always downgrade the registry protocol to supported versions
Not all version support the new sparse protocol. While old versions
ignore the value, 1.66 and other fail due to unstable features.

If such a version is detected, always downgrade to the git protocol.

This fixes running the action twice with different toolchains. Even if
the first install uses something which supports "sparse", the second run
can still downgrade it to "git".

Closes #12
2023-02-21 21:02:41 +00:00
9fa7c33ef0 Merge pull request #11 from actions-rust-lang/tweak-regex 2023-02-15 19:09:34 +01:00
5f4f30a995 Maybe fix rustup warning
warning: Force-skipping unavailable component 'rust-std-thumbv2-none-eabi'
2023-02-15 19:06:41 +01:00
2d7b97c05c Tweak sparse registry version regex and command not found
These issues are reported again rust-toolchain from which the code is
inspired.

https://github.com/dtolnay/rust-toolchain/issues/71

https://github.com/dtolnay/rust-toolchain/pull/69#pullrequestreview-1299712112
2023-02-15 18:49:49 +01:00
c7c759a5c9 New version with macOS fix 2023-02-13 23:47:49 +01:00
ba68a52e42 Merge pull request #10 from actions-rust-lang/issue-9 2023-02-13 23:43:33 +01:00
40e33d4912 Install newer bash on macOS
The code snippets are written with bash newer than 2014 in mind. This
works fine on Linux and Windows, but not macOS.
2023-02-13 23:28:57 +01:00
8ba1b441e5 Run CI on more platforms 2023-02-13 23:28:43 +01:00
51b4f8316a Bump version to 1.4.0 2023-02-13 21:09:16 +01:00
4605df10a0 Merge pull request #8 from actions-rust-lang/sparse-registry 2023-02-13 21:08:28 +01:00
eac5ebb2ae Fix: Use acceptable crate name (lowercase) 2023-02-13 21:05:26 +01:00
aee7133b58 Use newer nightly with "cargo add" support 2023-02-13 21:02:26 +01:00
2ee353b897 Enable sparse registry access using the stable configuration
Exclude versions 1.66 and 1.67, which don't support stable sparse registry.
2023-02-13 21:00:11 +01:00
045ad9ff3f Only set env vars if they are unset. 2023-02-13 20:58:51 +01:00
3 changed files with 95 additions and 16 deletions

View File

@ -8,18 +8,26 @@ on:
jobs:
install:
name: Rust ${{matrix.rust}}
runs-on: ubuntu-latest
name: Rust ${{matrix.rust}} ${{matrix.os}}
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
rust: [
# Test with toolchain file override
"1.50",
"1.60",
# Test that the sparse registry check works.
# 1.66 and 1.67 don't support stable sparse registry.
"1.66",
"nightly",
"beta",
"stable",
]
os: [
"ubuntu-latest",
"windows-latest",
"macos-latest",
]
steps:
- uses: actions/checkout@v3
# Test toolchain file support
@ -27,13 +35,13 @@ jobs:
run: |
cat <<EOF >>rust-toolchain.toml
[toolchain]
channel = "nightly-2020-07-10"
channel = "nightly-2022-09-10"
components = [ "rustfmt", "rustc-dev" ]
targets = [ "wasm32-unknown-unknown", "thumbv2-none-eabi" ]
targets = [ "wasm32-unknown-unknown", "thumbv7m-none-eabi" ]
profile = "minimal"
EOF
shell: bash
if: matrix.rust == '1.50'
if: matrix.rust == '1.60'
- uses: ./
name: Run actions-rust-lang/setup-rust-toolchain ${{matrix.rust}}
@ -48,3 +56,10 @@ jobs:
run: echo '${{steps.toolchain.outputs.rustup-version}}'
- run: rustc --version && cargo --version
shell: bash
# Test with creating a small project
- run: cargo init . --bin --name ci
# Add tiny empty crate.
# This checks that registry access works.
- run: cargo add serde_as
- run: cargo check

View File

@ -7,6 +7,40 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
## [1.4.3] - 2023-02-21
### Fixed
* Executing the action twice for different toolchains now no longer fails around unstable features #12.
If multiple toolchains are installed, the "CARGO_REGISTRIES_CRATES_IO_PROTOCOL" can be downgraded to "git" if any of the installed toolchains require it.
## [1.4.2] - 2023-02-15
### Fixed
* Tweak sparse registry version regex to better work with 1.68 nightly versions.
* Fix command not found issue
## [1.4.1] - 2023-02-13
### Fixed
* Fixed running on macOS #9 #10
The macOS images have an ancient version of bash, but the action relies on "newer" features than 2014.
We install bash via brew (already pre-installed) to have a new enough version.
The CI is extended to also run on Windows and macOS to catch such issues earlier in the future.
Thanks to @GeorgeHahn for reporting the issue.
## [1.4.0] - 2023-02-13
### Changed
* Only set environment variables, if they are not set before.
This allows setting environment variables before using this action and keeping their values.
* Enable stable sparse registry, except on versions 1.66 and 1.67 where this leads to errors.
## [1.3.7] - 2023-01-31
### Fixed

View File

@ -44,6 +44,13 @@ outputs:
runs:
using: composite
steps:
# The later code uses "newer" bash features, which are not available in the ancient bash 3 (from 2014) of macOS
- name: Unbork mac
if: runner.os == 'macOS'
run: |
brew install bash
shell: bash
- id: flags
run: |
: construct rustup command line
@ -57,19 +64,30 @@ runs:
# The environment variables always need to be set before the caching action
- name: "Setting Environment Variables"
run: |
echo "CARGO_INCREMENTAL=0" >> $GITHUB_ENV
echo "CARGO_PROFILE_DEV_DEBUG=0" >> $GITHUB_ENV
echo "CARGO_TERM_COLOR=always" >> $GITHUB_ENV
echo "RUST_BACKTRACE=short" >> $GITHUB_ENV
echo "RUSTFLAGS=-D warnings" >> $GITHUB_ENV
if [[ ! -v CARGO_INCREMENTAL ]]; then
echo "CARGO_INCREMENTAL=0" >> $GITHUB_ENV
fi
if [[ ! -v CARGO_PROFILE_DEV_DEBUG ]]; then
echo "CARGO_PROFILE_DEV_DEBUG=0" >> $GITHUB_ENV
fi
if [[ ! -v CARGO_TERM_COLOR ]]; then
echo "CARGO_TERM_COLOR=always" >> $GITHUB_ENV
fi
if [[ ! -v RUST_BACKTRACE ]]; then
echo "RUST_BACKTRACE=short" >> $GITHUB_ENV
fi
if [[ ! -v RUSTFLAGS ]]; then
echo "RUSTFLAGS=-D warnings" >> $GITHUB_ENV
fi
# Enable faster sparse index on nightly
# The value is ignored on stable and causes no problems
# https://internals.rust-lang.org/t/call-for-testing-cargo-sparse-registry/16862
echo "CARGO_UNSTABLE_SPARSE_REGISTRY=true" >> $GITHUB_ENV
# Enable sparse index after stabilization
# This causes warnings on stable 1.67, e.g., when using "cargo add"
# https://github.com/rust-lang/cargo/pull/11224
# echo "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" >> $GITHUB_ENV
if [[ ! -v CARGO_UNSTABLE_SPARSE_REGISTRY ]]; then
echo "CARGO_UNSTABLE_SPARSE_REGISTRY=true" >> $GITHUB_ENV
fi
if [[ ! -v CARGO_REGISTRIES_CRATES_IO_PROTOCOL ]]; then
echo "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" >> $GITHUB_ENV
fi
shell: bash
- name: "Install Rust Problem Matcher"
run: echo "::add-matcher::${{ github.action_path }}/rust.json"
@ -111,6 +129,18 @@ runs:
echo "cachekey=$(echo $DATE$HASH | head -c12)" >> $GITHUB_OUTPUT
shell: bash
- name: "Downgrade registry access protocol when needed"
run: |
# Not all versions support setting CARGO_REGISTRIES_CRATES_IO_PROTOCOL
# On versions 1.66, 1.67, and 1.68.0-nightly the value "sparse" is still unstable.
# https://github.com/dtolnay/rust-toolchain/pull/69#discussion_r1107268108
# If we detect an incompatible value, set it to "git" which is always supported.
if [[ "${{steps.versions.outputs.rustc-version}}" =~ ^rustc\ (1\.6[67]\.|1\.68\.0-nightly) && "${CARGO_REGISTRIES_CRATES_IO_PROTOCOL}" == "sparse" ]]; then
echo "Downgrade cargo registry protocol to git"
echo "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=git" >> $GITHUB_ENV
fi
shell: bash
- name: "Setup Rust Caching"
if: inputs.cache == 'true'
uses: Swatinem/rust-cache@v2