Merge pull request #29 from actions-rust-lang/upd-toolchain-nightly

This commit is contained in:
Rob Ede 2024-01-11 03:16:11 +00:00 committed by GitHub
commit 154a347b2a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 55 additions and 43 deletions

View file

@ -1,7 +1,7 @@
name: CI name: CI
on: on:
push: push: { branches: [main] }
pull_request: pull_request:
schedule: [cron: "40 1 * * *"] schedule: [cron: "40 1 * * *"]
@ -12,54 +12,61 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
rust: [ rust:
# Test with toolchain file override # Test with toolchain file override
"", - null
# Test that the sparse registry check works. # Test that the sparse registry check works.
# 1.66 and 1.67 don't support stable sparse registry. # 1.66 and 1.67 don't support stable sparse registry.
"1.66", - "1.66"
"nightly",
"beta", - "nightly"
"stable", - "beta"
] - "stable"
os: [ os:
"ubuntu-latest", - ubuntu-latest
"windows-latest", - windows-latest
"macos-latest", - macos-latest
]
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
# Test toolchain file support # Test toolchain file support
- name: Write rust-toolchain.toml - name: Write rust-toolchain.toml
if: matrix.rust == null
shell: bash
run: | run: |
cat <<EOF >>rust-toolchain.toml cat <<EOF >>rust-toolchain.toml
[toolchain] [toolchain]
channel = "nightly-2022-09-10" channel = "nightly-2024-01-11"
components = [ "rustfmt", "rustc-dev" ] components = [ "rustfmt", "rustc-dev" ]
targets = [ "wasm32-unknown-unknown", "thumbv7m-none-eabi" ] targets = [ "wasm32-unknown-unknown", "thumbv7m-none-eabi" ]
profile = "minimal" profile = "minimal"
EOF EOF
shell: bash
if: matrix.rust == ''
- uses: ./ - id: toolchain
name: Run actions-rust-lang/setup-rust-toolchain ${{matrix.rust || 'on toolchain file'}} name: Run actions-rust-lang/setup-rust-toolchain ${{matrix.rust || 'on toolchain file'}}
id: toolchain uses: ./
with: with:
toolchain: ${{matrix.rust}} toolchain: ${{matrix.rust}}
components: clippy components: clippy
- name: Check ${{'${{steps.toolchain.outputs.rustc-version}}'}} - name: Check ${{'${{steps.toolchain.outputs.rustc-version}}'}}
run: echo '${{steps.toolchain.outputs.rustc-version}}' run: echo '${{steps.toolchain.outputs.rustc-version}}'
- name: Check ${{'${{steps.toolchain.outputs.cargo-version}}'}} - name: Check ${{'${{steps.toolchain.outputs.cargo-version}}'}}
run: echo '${{steps.toolchain.outputs.cargo-version}}' run: echo '${{steps.toolchain.outputs.cargo-version}}'
- name: Check ${{'${{steps.toolchain.outputs.rustup-version}}'}} - name: Check ${{'${{steps.toolchain.outputs.rustup-version}}'}}
run: echo '${{steps.toolchain.outputs.rustup-version}}' run: echo '${{steps.toolchain.outputs.rustup-version}}'
- run: rustc --version && cargo --version
shell: bash - shell: bash
run: rustc --version && cargo --version
# Test with creating a small project # Test with creating a small project
- run: cargo init . --bin --name ci - run: cargo init . --bin --name ci
# Add tiny empty crate. # Add tiny empty crate.
# This checks that registry access works. # This checks that registry access works.
- run: cargo add serde_as - run: cargo add serde_as
- run: cargo clippy - run: cargo clippy

View file

@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
* Allow overriding the toolchain file with explicit `toolchain` input. (#26)
## [1.6.0] - 2023-12-04 ## [1.6.0] - 2023-12-04
### Added ### Added

View file

@ -59,17 +59,21 @@ runs:
shell: bash shell: bash
- id: flags - id: flags
env:
targets: ${{inputs.target}}
components: ${{inputs.components}}
shell: bash
run: | run: |
: construct rustup command line : construct rustup command line
echo "targets=$(for t in ${targets//,/ }; do echo -n ' --target' $t; done)" >> $GITHUB_OUTPUT echo "targets=$(for t in ${targets//,/ }; do echo -n ' --target' $t; done)" >> $GITHUB_OUTPUT
echo "components=$(for c in ${components//,/ }; do echo -n ' --component' $c; done)" >> $GITHUB_OUTPUT echo "components=$(for c in ${components//,/ }; do echo -n ' --component' $c; done)" >> $GITHUB_OUTPUT
echo "downgrade=${{inputs.toolchain == 'nightly' && inputs.components && ' --allow-downgrade' || ''}}" >> $GITHUB_OUTPUT echo "downgrade=${{inputs.toolchain == 'nightly' && inputs.components && ' --allow-downgrade' || ''}}" >> $GITHUB_OUTPUT
env:
targets: ${{inputs.target}}
components: ${{inputs.components}}
shell: bash
# The environment variables always need to be set before the caching action # The environment variables always need to be set before the caching action
- name: "Setting Environment Variables" - name: Setting Environment Variables
env:
NEW_RUSTFLAGS: ${{inputs.rustflags}}
shell: bash
run: | run: |
if [[ ! -v CARGO_INCREMENTAL ]]; then if [[ ! -v CARGO_INCREMENTAL ]]; then
echo "CARGO_INCREMENTAL=0" >> $GITHUB_ENV echo "CARGO_INCREMENTAL=0" >> $GITHUB_ENV
@ -95,23 +99,27 @@ runs:
if [[ ! -v CARGO_REGISTRIES_CRATES_IO_PROTOCOL ]]; then if [[ ! -v CARGO_REGISTRIES_CRATES_IO_PROTOCOL ]]; then
echo "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" >> $GITHUB_ENV echo "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" >> $GITHUB_ENV
fi fi
shell: bash
env: - name: Install Rust Problem Matcher
NEW_RUSTFLAGS: ${{inputs.rustflags}}
- name: "Install Rust Problem Matcher"
if: inputs.matcher == 'true' if: inputs.matcher == 'true'
run: echo "::add-matcher::${{ github.action_path }}/rust.json"
shell: bash shell: bash
run: echo "::add-matcher::${{ github.action_path }}/rust.json"
- name: Install rustup, if needed - name: Install rustup, if needed
if: runner.os != 'Windows'
shell: bash
run: | run: |
if ! command -v rustup &> /dev/null ; then if ! command -v rustup &> /dev/null ; then
curl --proto '=https' --tlsv1.2 --retry 10 --retry-connrefused -fsSL "https://sh.rustup.rs" | sh -s -- --default-toolchain none -y curl --proto '=https' --tlsv1.2 --retry 10 --retry-connrefused -fsSL "https://sh.rustup.rs" | sh -s -- --default-toolchain none -y
echo "${CARGO_HOME:-$HOME/.cargo}/bin" >> $GITHUB_PATH echo "${CARGO_HOME:-$HOME/.cargo}/bin" >> $GITHUB_PATH
fi fi
if: runner.os != 'Windows'
shell: bash
- name: rustup toolchain install ${{inputs.toolchain || 'stable'}} - name: rustup toolchain install ${{inputs.toolchain || 'stable'}}
env:
toolchain: ${{inputs.toolchain}}
targets: ${{inputs.target}}
components: ${{inputs.components}}
shell: bash
run: | run: |
if [[ -z "$toolchain" && ( -f "rust-toolchain" || -f "rust-toolchain.toml" ) ]] if [[ -z "$toolchain" && ( -f "rust-toolchain" || -f "rust-toolchain.toml" ) ]]
then then
@ -132,14 +140,10 @@ runs:
rustup toolchain install $toolchain${{steps.flags.outputs.targets}}${{steps.flags.outputs.components}} --profile minimal${{steps.flags.outputs.downgrade}} --no-self-update rustup toolchain install $toolchain${{steps.flags.outputs.targets}}${{steps.flags.outputs.components}} --profile minimal${{steps.flags.outputs.downgrade}} --no-self-update
rustup default $toolchain rustup default $toolchain
fi fi
env:
toolchain: ${{inputs.toolchain}}
targets: ${{inputs.target}}
components: ${{inputs.components}}
shell: bash
- name: Print installed versions - id: versions
id: versions name: Print installed versions
shell: bash
run: | run: |
echo "rustc-version=$(rustc --version)" >> $GITHUB_OUTPUT echo "rustc-version=$(rustc --version)" >> $GITHUB_OUTPUT
rustc --version --verbose rustc --version --verbose
@ -151,9 +155,9 @@ runs:
DATE=$(rustc --version --verbose | sed -ne 's/^commit-date: \(20[0-9][0-9]\)-\([01][0-9]\)-\([0-3][0-9]\)$/\1\2\3/p') DATE=$(rustc --version --verbose | sed -ne 's/^commit-date: \(20[0-9][0-9]\)-\([01][0-9]\)-\([0-3][0-9]\)$/\1\2\3/p')
HASH=$(rustc --version --verbose | sed -ne 's/^commit-hash: //p') HASH=$(rustc --version --verbose | sed -ne 's/^commit-hash: //p')
echo "cachekey=$(echo $DATE$HASH | head -c12)" >> $GITHUB_OUTPUT echo "cachekey=$(echo $DATE$HASH | head -c12)" >> $GITHUB_OUTPUT
shell: bash
- name: "Downgrade registry access protocol when needed" - name: Downgrade registry access protocol when needed
shell: bash
run: | run: |
# Not all versions support setting CARGO_REGISTRIES_CRATES_IO_PROTOCOL # 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. # On versions 1.66, 1.67, and 1.68.0-nightly the value "sparse" is still unstable.
@ -163,8 +167,7 @@ runs:
echo "Downgrade cargo registry protocol to git" echo "Downgrade cargo registry protocol to git"
echo "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=git" >> $GITHUB_ENV echo "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=git" >> $GITHUB_ENV
fi fi
shell: bash
- name: "Setup Rust Caching" - name: Setup Rust Caching
if: inputs.cache == 'true' if: inputs.cache == 'true'
uses: Swatinem/rust-cache@v2 uses: Swatinem/rust-cache@v2