9 Commits

3 changed files with 74 additions and 10 deletions

View File

@ -15,7 +15,10 @@ jobs:
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",
@ -27,13 +30,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" ]
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 +51,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

@ -5,7 +5,36 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [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
* Disable the stable access to the sparse registry.
Setting the value causes problem on version before stabilization, e.g., 1.67.
For example, "cargo add" fails.
## [1.3.6] - 2023-01-31
### Fixed
* The the correct environment variable to enable the sparse registry access.
The pull request originally had the wrong value, without `CARGO_` prefix.
## [1.3.5] - 2023-01-21
### Changed
* Use the newly stabilized setting to enable sparse registry access.
This speeds up access to the crate registry and is in addition to the unstable nightly env var.
<https://github.com/rust-lang/cargo/pull/11224>
## [1.3.4] - 2022-10-15

View File

@ -57,14 +57,27 @@ 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
if [[ ! -v CARGO_UNSTABLE_SPARSE_REGISTRY ]]; then
echo "CARGO_UNSTABLE_SPARSE_REGISTRY=true" >> $GITHUB_ENV
fi
shell: bash
- name: "Install Rust Problem Matcher"
run: echo "::add-matcher::${{ github.action_path }}/rust.json"
@ -106,6 +119,18 @@ runs:
echo "cachekey=$(echo $DATE$HASH | head -c12)" >> $GITHUB_OUTPUT
shell: bash
# Copied from dtolnay/rust-toolchain and adapted
# https://github.com/dtolnay/rust-toolchain/blob/25dc93b901a87e864900a8aec6c12e9aa794c0c3/action.yml#L100-L108
- name: "Enable cargo sparse registry on stable"
run: |
# except on 1.66 and 1.67, on which it is unstable
if [[ ! -v CARGO_REGISTRIES_CRATES_IO_PROTOCOL ]]; then
if echo "${{steps.versions.outputs.rustc-version}}" | not grep -q '^rustc 1\.6[67]\.'; then
echo "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" >> $GITHUB_ENV
fi
fi
shell: bash
- name: "Setup Rust Caching"
if: inputs.cache == 'true'
uses: Swatinem/rust-cache@v2