ci: Use dtolnay/rust-toolchain to install the toolchain instead of the manual setup

This commit is contained in:
Joining7943 2023-04-22 16:49:49 +02:00 committed by Sylvestre Ledru
parent e6f999a32f
commit 2935e5d8f9
3 changed files with 53 additions and 96 deletions

View file

@ -3,7 +3,7 @@ name: CICD
# spell-checker:ignore (abbrev/names) CICD CodeCOV MacOS MinGW MSVC musl taiki # spell-checker:ignore (abbrev/names) CICD CodeCOV MacOS MinGW MSVC musl taiki
# spell-checker:ignore (env/flags) Awarnings Ccodegen Coverflow Cpanic Dwarnings RUSTDOCFLAGS RUSTFLAGS Zpanic CARGOFLAGS # spell-checker:ignore (env/flags) Awarnings Ccodegen Coverflow Cpanic Dwarnings RUSTDOCFLAGS RUSTFLAGS Zpanic CARGOFLAGS
# spell-checker:ignore (jargon) SHAs deps dequote softprops subshell toolchain fuzzers # spell-checker:ignore (jargon) SHAs deps dequote softprops subshell toolchain fuzzers
# spell-checker:ignore (people) Peltoche rivy # spell-checker:ignore (people) Peltoche rivy dtolnay
# spell-checker:ignore (shell/tools) choco clippy dmake dpkg esac fakeroot fdesc fdescfs gmake grcov halium lcov libssl mkdir popd printf pushd rsync rustc rustfmt rustup shopt utmpdump xargs # spell-checker:ignore (shell/tools) choco clippy dmake dpkg esac fakeroot fdesc fdescfs gmake grcov halium lcov libssl mkdir popd printf pushd rsync rustc rustfmt rustup shopt utmpdump xargs
# spell-checker:ignore (misc) aarch alnum armhf bindir busytest coreutils defconfig DESTDIR gecos gnueabihf issuecomment maint multisize nullglob onexitbegin onexitend pell runtest Swatinem tempfile testsuite toybox uutils # spell-checker:ignore (misc) aarch alnum armhf bindir busytest coreutils defconfig DESTDIR gecos gnueabihf issuecomment maint multisize nullglob onexitbegin onexitend pell runtest Swatinem tempfile testsuite toybox uutils
@ -48,10 +48,7 @@ jobs:
- { os: windows-latest , features: feat_os_windows } - { os: windows-latest , features: feat_os_windows }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Install `rust` toolchain - uses: dtolnay/rust-toolchain@nightly
run: |
rustup toolchain install nightly --no-self-update --profile minimal
rustup default nightly
## note: requires 'nightly' toolchain b/c `cargo-udeps` uses the `rustc` '-Z save-analysis' option ## note: requires 'nightly' toolchain b/c `cargo-udeps` uses the `rustc` '-Z save-analysis' option
## * ... ref: <https://github.com/est31/cargo-udeps/issues/73> ## * ... ref: <https://github.com/est31/cargo-udeps/issues/73>
- uses: taiki-e/install-action@cargo-udeps - uses: taiki-e/install-action@cargo-udeps
@ -95,11 +92,10 @@ jobs:
- { os: ubuntu-latest , features: feat_os_unix } - { os: ubuntu-latest , features: feat_os_unix }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Install `rust` toolchain - uses: dtolnay/rust-toolchain@master
run: | with:
## Install `rust` toolchain toolchain: stable
rustup toolchain install stable --no-self-update -c rustfmt --profile minimal components: rustfmt
rustup default stable
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Initialize workflow variables - name: Initialize workflow variables
id: vars id: vars
@ -136,10 +132,7 @@ jobs:
RUN_FOR: 60 RUN_FOR: 60
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Install `rust` toolchain - uses: dtolnay/rust-toolchain@nightly
run: |
rustup toolchain install nightly --no-self-update --profile minimal
rustup default nightly
- name: Install `cargo-fuzz` - name: Install `cargo-fuzz`
run: cargo install cargo-fuzz run: cargo install cargo-fuzz
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
@ -183,11 +176,10 @@ jobs:
- { os: windows-latest , features: feat_os_windows } - { os: windows-latest , features: feat_os_windows }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Install `rust` toolchain - uses: dtolnay/rust-toolchain@master
run: | with:
## Install `rust` toolchain toolchain: stable
rustup toolchain install stable --no-self-update -c clippy --profile minimal components: clippy
rustup default stable
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Run sccache-cache - name: Run sccache-cache
uses: mozilla-actions/sccache-action@v0.0.3 uses: mozilla-actions/sccache-action@v0.0.3
@ -294,11 +286,10 @@ jobs:
# - { os: windows-latest , features: feat_os_windows } # - { os: windows-latest , features: feat_os_windows }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Install `rust` toolchain - uses: dtolnay/rust-toolchain@master
run: | with:
## Install `rust` toolchain toolchain: stable
rustup toolchain install stable --no-self-update -c clippy --profile minimal components: clippy
rustup default stable
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Run sccache-cache - name: Run sccache-cache
uses: mozilla-actions/sccache-action@v0.0.3 uses: mozilla-actions/sccache-action@v0.0.3
@ -348,11 +339,10 @@ jobs:
- { os: ubuntu-latest , features: feat_os_unix } - { os: ubuntu-latest , features: feat_os_unix }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Install `rust` toolchain (v${{ env.RUST_MIN_SRV }}) - uses: dtolnay/rust-toolchain@master
run: | with:
## Install `rust` toolchain (v${{ env.RUST_MIN_SRV }}) toolchain: ${{ env.RUST_MIN_SRV }}
rustup toolchain install --no-self-update ${{ env.RUST_MIN_SRV }} --profile minimal components: rustfmt
rustup default ${{ env.RUST_MIN_SRV }}
- uses: taiki-e/install-action@nextest - uses: taiki-e/install-action@nextest
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Run sccache-cache - name: Run sccache-cache
@ -418,11 +408,7 @@ jobs:
- { os: ubuntu-latest , features: feat_os_unix } - { os: ubuntu-latest , features: feat_os_unix }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Install `rust` toolchain - uses: dtolnay/rust-toolchain@stable
run: |
## Install `rust` toolchain
rustup toolchain install stable --no-self-update --profile minimal
rustup default stable
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: "`cargo update` testing" - name: "`cargo update` testing"
shell: bash shell: bash
@ -445,11 +431,7 @@ jobs:
- { os: ubuntu-latest , features: feat_os_unix } - { os: ubuntu-latest , features: feat_os_unix }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Install `rust` toolchain - uses: dtolnay/rust-toolchain@stable
run: |
## Install `rust` toolchain
rustup toolchain install stable --no-self-update --profile minimal
rustup default stable
- uses: taiki-e/install-action@nextest - uses: taiki-e/install-action@nextest
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Run sccache-cache - name: Run sccache-cache
@ -492,11 +474,7 @@ jobs:
- { os: windows-latest , features: feat_os_windows } - { os: windows-latest , features: feat_os_windows }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Install `rust` toolchain - uses: dtolnay/rust-toolchain@stable
run: |
## Install `rust` toolchain
rustup toolchain install stable --no-self-update --profile minimal
rustup default stable
- uses: taiki-e/install-action@nextest - uses: taiki-e/install-action@nextest
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Run sccache-cache - name: Run sccache-cache
@ -524,11 +502,7 @@ jobs:
- { os: windows-latest , features: feat_os_windows } - { os: windows-latest , features: feat_os_windows }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Install `rust` toolchain - uses: dtolnay/rust-toolchain@nightly
run: |
## Install `rust` toolchain
rustup toolchain install nightly --no-self-update --profile minimal
rustup default nightly
- uses: taiki-e/install-action@nextest - uses: taiki-e/install-action@nextest
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Run sccache-cache - name: Run sccache-cache
@ -553,11 +527,7 @@ jobs:
- { os: ubuntu-latest , features: feat_os_unix } - { os: ubuntu-latest , features: feat_os_unix }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Install `rust` toolchain - uses: dtolnay/rust-toolchain@stable
run: |
## Install `rust` toolchain
rustup toolchain install stable --no-self-update --profile minimal
rustup default stable
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Run sccache-cache - name: Run sccache-cache
uses: mozilla-actions/sccache-action@v0.0.3 uses: mozilla-actions/sccache-action@v0.0.3
@ -677,11 +647,10 @@ jobs:
- { os: windows-latest , target: x86_64-pc-windows-msvc , features: feat_os_windows } - { os: windows-latest , target: x86_64-pc-windows-msvc , features: feat_os_windows }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: rust toolchain ~ install - uses: dtolnay/rust-toolchain@master
run: | with:
## rust toolchain ~ install toolchain: ${{ env.RUST_MIN_SRV }}
rustup toolchain install --no-self-update ${{ env.RUST_MIN_SRV }} -t ${{ matrix.job.target }} --profile minimal targets: ${{ matrix.job.target }}
rustup default ${{ env.RUST_MIN_SRV }}
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
with: with:
key: "${{ matrix.job.os }}_${{ matrix.job.target }}" key: "${{ matrix.job.os }}_${{ matrix.job.target }}"
@ -762,7 +731,7 @@ jobs:
outputs CARGO_CMD outputs CARGO_CMD
# ** pass needed environment into `cross` container (iff `cross` not already configured via "Cross.toml") # ** pass needed environment into `cross` container (iff `cross` not already configured via "Cross.toml")
if [ "${CARGO_CMD}" = 'cross' ] && [ ! -e "Cross.toml" ] ; then if [ "${CARGO_CMD}" = 'cross' ] && [ ! -e "Cross.toml" ] ; then
printf "[build.env]\npassthrough = [\"CI\", \"RUST_BACKTRACE\"]\n" > Cross.toml printf "[build.env]\npassthrough = [\"CI\", \"RUST_BACKTRACE\", \"CARGO_TERM_COLOR\"]\n" > Cross.toml
fi fi
# * test only library and/or binaries for arm-type targets # * test only library and/or binaries for arm-type targets
unset CARGO_TEST_OPTIONS ; case '${{ matrix.job.target }}' in aarch64-* | arm-*) CARGO_TEST_OPTIONS="--bins" ;; esac; unset CARGO_TEST_OPTIONS ; case '${{ matrix.job.target }}' in aarch64-* | arm-*) CARGO_TEST_OPTIONS="--bins" ;; esac;
@ -778,7 +747,7 @@ jobs:
- uses: taiki-e/install-action@v2 - uses: taiki-e/install-action@v2
if: steps.vars.outputs.CARGO_CMD == 'cross' if: steps.vars.outputs.CARGO_CMD == 'cross'
with: with:
tool: cross@v0.2.1 tool: cross@0.2.1
- name: Create all needed build/work directories - name: Create all needed build/work directories
shell: bash shell: bash
run: | run: |
@ -1017,11 +986,10 @@ jobs:
TEST_SUMMARY_FILE="toybox-result.json" TEST_SUMMARY_FILE="toybox-result.json"
outputs TEST_SUMMARY_FILE outputs TEST_SUMMARY_FILE
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: rust toolchain ~ install - uses: dtolnay/rust-toolchain@master
run: | with:
## rust toolchain ~ install toolchain: ${{ env.RUST_MIN_SRV }}
rustup toolchain install --no-self-update ${{ env.RUST_MIN_SRV }} --profile minimal components: rustfmt
rustup default ${{ env.RUST_MIN_SRV }}
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Run sccache-cache - name: Run sccache-cache
uses: mozilla-actions/sccache-action@v0.0.3 uses: mozilla-actions/sccache-action@v0.0.3
@ -1100,11 +1068,10 @@ jobs:
- { os: windows-latest , features: windows, toolchain: nightly-x86_64-pc-windows-gnu } - { os: windows-latest , features: windows, toolchain: nightly-x86_64-pc-windows-gnu }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: rust toolchain ~ install - uses: dtolnay/rust-toolchain@master
run: | with:
## rust toolchain ~ install toolchain: ${{ matrix.job.toolchain }}
rustup toolchain install ${{ matrix.job.toolchain }} --no-self-update --profile minimal components: rustfmt
rustup default ${{ matrix.job.toolchain }}
- uses: taiki-e/install-action@nextest - uses: taiki-e/install-action@nextest
- uses: taiki-e/install-action@grcov - uses: taiki-e/install-action@grcov
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2

View file

@ -1,6 +1,6 @@
name: FixPR name: FixPR
# spell-checker:ignore Swatinem # spell-checker:ignore Swatinem dtolnay
# Trigger automated fixes for PRs being merged (with associated commits) # Trigger automated fixes for PRs being merged (with associated commits)
@ -36,11 +36,7 @@ jobs:
# surface MSRV from CICD workflow # surface MSRV from CICD workflow
RUST_MIN_SRV=$(grep -P "^\s+RUST_MIN_SRV:" .github/workflows/CICD.yml | grep -Po "(?<=\x22)\d+[.]\d+(?:[.]\d+)?(?=\x22)" ) RUST_MIN_SRV=$(grep -P "^\s+RUST_MIN_SRV:" .github/workflows/CICD.yml | grep -Po "(?<=\x22)\d+[.]\d+(?:[.]\d+)?(?=\x22)" )
outputs RUST_MIN_SRV outputs RUST_MIN_SRV
- name: Install `rust` toolchain (v${{ steps.vars.outputs.RUST_MIN_SRV }}) - uses: dtolnay/rust-toolchain@${{ steps.vars.outputs.RUST_MIN_SRV }}
run: |
## Install `rust` toolchain (v${{ steps.vars.outputs.RUST_MIN_SRV }})
rustup toolchain install ${{ steps.vars.outputs.RUST_MIN_SRV }} --profile minimal
rustup default ${{ steps.vars.outputs.RUST_MIN_SRV }}
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Ensure updated 'Cargo.lock' - name: Ensure updated 'Cargo.lock'
shell: bash shell: bash
@ -101,12 +97,10 @@ jobs:
CARGO_FEATURES_OPTION='' ; CARGO_FEATURES_OPTION='' ;
if [ -n "${{ matrix.job.features }}" ]; then CARGO_FEATURES_OPTION='--features "${{ matrix.job.features }}"' ; fi if [ -n "${{ matrix.job.features }}" ]; then CARGO_FEATURES_OPTION='--features "${{ matrix.job.features }}"' ; fi
outputs CARGO_FEATURES_OPTION outputs CARGO_FEATURES_OPTION
- name: Install `rust` toolchain - uses: dtolnay/rust-toolchain@master
run: | with:
## Install `rust` toolchain toolchain: stable
rm -f "${HOME}/.cargo/bin/"{rustfmt,cargo-fmt} components: rustfmt
rustup toolchain install stable -c rustfmt --profile minimal
rustup default stable
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: "`cargo fmt`" - name: "`cargo fmt`"
shell: bash shell: bash

View file

@ -4,7 +4,7 @@ name: GnuTests
# spell-checker:ignore (jargon) submodules # spell-checker:ignore (jargon) submodules
# spell-checker:ignore (libs/utils) autopoint chksum gperf lcov libexpect pyinotify shopt texinfo valgrind libattr libcap taiki-e # spell-checker:ignore (libs/utils) autopoint chksum gperf lcov libexpect pyinotify shopt texinfo valgrind libattr libcap taiki-e
# spell-checker:ignore (options) Ccodegen Coverflow Cpanic Zpanic # spell-checker:ignore (options) Ccodegen Coverflow Cpanic Zpanic
# spell-checker:ignore (people) Dawid Dziurla * dawidd # spell-checker:ignore (people) Dawid Dziurla * dawidd dtolnay
# spell-checker:ignore (vars) FILESET SUBDIRS XPASS # spell-checker:ignore (vars) FILESET SUBDIRS XPASS
# * note: to run a single test => `REPO/util/run-gnu-test.sh PATH/TO/TEST/SCRIPT` # * note: to run a single test => `REPO/util/run-gnu-test.sh PATH/TO/TEST/SCRIPT`
@ -58,12 +58,10 @@ jobs:
uses: actions/checkout@v3 uses: actions/checkout@v3
with: with:
path: '${{ steps.vars.outputs.path_UUTILS }}' path: '${{ steps.vars.outputs.path_UUTILS }}'
- name: Install `rust` toolchain - uses: dtolnay/rust-toolchain@master
run: | with:
## Install `rust` toolchain toolchain: stable
rm -f "${HOME}/.cargo/bin/"{rustfmt,cargo-fmt} components: rustfmt
rustup toolchain install stable -c rustfmt --profile minimal
rustup default stable
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Checkout code (GNU coreutils) - name: Checkout code (GNU coreutils)
uses: actions/checkout@v3 uses: actions/checkout@v3
@ -317,12 +315,10 @@ jobs:
path: 'gnu' path: 'gnu'
ref: 'v9.3' ref: 'v9.3'
submodules: recursive submodules: recursive
- name: Install `rust` toolchain - uses: dtolnay/rust-toolchain@master
run: | with:
## Install `rust` toolchain toolchain: nightly
rm -f "${HOME}/.cargo/bin/"{rustfmt,cargo-fmt} components: rustfmt
rustup toolchain install nightly -c rustfmt --profile minimal
rustup default nightly
- uses: taiki-e/install-action@grcov - uses: taiki-e/install-action@grcov
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Install dependencies - name: Install dependencies