From 5ece21ab34c5b3ee7e626331e24bf7ba021153f3 Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Tue, 5 Dec 2023 15:17:27 -0800 Subject: [PATCH] CI: Sync GitHub Actions workflow definitions with *ring*. --- .github/workflows/ci.yml | 101 +++++++++++++-------------------------- 1 file changed, 34 insertions(+), 67 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2a591fa0..bee11bb6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,27 +9,21 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: briansmith/actions-rs-toolchain@v1 - with: - toolchain: stable - profile: minimal - components: rustfmt - - uses: briansmith/actions-checkout@v2 + - run: rustup --version + + - uses: briansmith/actions-checkout@v4 with: persist-credentials: false + - run: cargo fmt --all -- --check clippy: runs-on: ubuntu-22.04 steps: - - uses: briansmith/actions-rs-toolchain@v1 - with: - toolchain: stable - profile: minimal - components: clippy + - run: rustup --version - - uses: briansmith/actions-checkout@v2 + - uses: briansmith/actions-checkout@v4 with: persist-credentials: false @@ -39,22 +33,20 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: briansmith/actions-rs-toolchain@v1 - with: - toolchain: stable - profile: minimal + - run: rustup --version - - uses: briansmith/actions-cache@v2 + - uses: briansmith/actions-cache@v3 with: path: | ~/.cargo/bin/cargo-audit ~/.cargo/.crates.toml ~/.cargo/.crates2.json - key: ${{ runner.os }}-v2-cargo-audit-0.13.1 + key: ${{ runner.os }}-v2-cargo-audit-0.17.4 - - run: cargo install cargo-audit --vers "0.13.1" + # With `--locked` `cargo install` complains about using yanked crates. + - run: cargo install cargo-audit --vers "0.17.4" - - uses: briansmith/actions-checkout@v2 + - uses: briansmith/actions-checkout@v4 with: persist-credentials: false @@ -66,22 +58,19 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: briansmith/actions-rs-toolchain@v1 - with: - toolchain: stable - profile: minimal + - run: rustup --version - - uses: briansmith/actions-cache@v2 + - uses: briansmith/actions-cache@v3 with: path: | ~/.cargo/bin/cargo-deny ~/.cargo/.crates.toml ~/.cargo/.crates2.json - key: ${{ runner.os }}-v2-cargo-deny-locked-0.8.5 + key: ${{ runner.os }}-v2-cargo-deny-locked-0.9.1 - - run: cargo install cargo-deny --locked --vers "0.8.5" + - run: cargo install cargo-deny --locked --vers "0.9.1" - - uses: briansmith/actions-checkout@v2 + - uses: briansmith/actions-checkout@v4 with: persist-credentials: false @@ -98,17 +87,10 @@ jobs: - beta - nightly - include: - - target: x86_64-unknown-linux-gnu - steps: - - uses: briansmith/actions-rs-toolchain@v1 - with: - override: true - target: ${{ matrix.target }} - toolchain: ${{ matrix.rust_channel }} + - run: rustup --version - - uses: briansmith/actions-checkout@v2 + - uses: briansmith/actions-checkout@v4 with: persist-credentials: false @@ -119,12 +101,7 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: briansmith/actions-rs-toolchain@v1 - with: - toolchain: stable - profile: minimal - - - uses: briansmith/actions-checkout@v2 + - uses: briansmith/actions-checkout@v4 with: persist-credentials: false @@ -165,11 +142,6 @@ jobs: - beta - exclude: - # 1.46.0 doesn't support `-Clink-self-contained`. - - target: x86_64-unknown-linux-musl - rust_channel: 1.46.0 - include: - target: aarch64-pc-windows-msvc host_os: windows-latest @@ -192,19 +164,16 @@ jobs: - if: ${{ contains(matrix.host_os, 'ubuntu') }} run: sudo apt-get update -y - - uses: briansmith/actions-checkout@v2 + - uses: briansmith/actions-checkout@v4 with: persist-credentials: false + - run: rustup toolchain add --profile=minimal ${{ matrix.rust_channel }} + - run: rustup target add --toolchain=${{ matrix.rust_channel }} ${{ matrix.target }} + - if: ${{ !contains(matrix.host_os, 'windows') }} run: mk/install-build-tools.sh --target=${{ matrix.target }} ${{ matrix.features }} - - uses: briansmith/actions-rs-toolchain@v1 - with: - override: true - target: ${{ matrix.target }} - toolchain: ${{ matrix.rust_channel }} - - if: ${{ matrix.target == 'aarch64-apple-darwin' }} run: echo "DEVELOPER_DIR=/Applications/Xcode_12.2.app/Contents/Developer" >> $GITHUB_ENV @@ -215,26 +184,27 @@ jobs: - if: ${{ !contains(matrix.host_os, 'windows') }} run: | - mk/cargo.sh test -vv --target=${{ matrix.target }} ${{ matrix.cargo_options }} ${{ matrix.features }} ${{ matrix.mode }} + mk/cargo.sh +${{ matrix.rust_channel }} test -vv --target=${{ matrix.target }} ${{ matrix.cargo_options }} ${{ matrix.features }} ${{ matrix.mode }} - if: ${{ contains(matrix.host_os, 'windows') }} run: | - cargo test -vv --target=${{ matrix.target }} ${{ matrix.cargo_options }} ${{ matrix.features }} ${{ matrix.mode }} + cargo +${{ matrix.rust_channel }} test -vv --target=${{ matrix.target }} ${{ matrix.cargo_options }} ${{ matrix.features }} ${{ matrix.mode }} # rcgen-based tests require Rust 1.67. - if: ${{ !contains(matrix.host_os, 'windows') && !contains(matrix.rust_channel, '1.61.0') }} run: | - mk/cargo.sh test -p rcgen-tests -vv --target=${{ matrix.target }} ${{ matrix.cargo_options }} ${{ matrix.features }} ${{ matrix.mode }} + mk/cargo.sh +${{ matrix.rust_channel }} test -p rcgen-tests -vv --target=${{ matrix.target }} ${{ matrix.cargo_options }} ${{ matrix.features }} ${{ matrix.mode }} # rcgen-based tests require Rust 1.67, and uses *ring* 0.16 which doesn't build for aarch64-pc-windows-msvc. - if: ${{ contains(matrix.host_os, 'windows') && !contains(matrix.rust_channel, '1.61.0') && !contains(matrix.target, 'aarch64-pc-windows-msvc') }} run: | - cargo test -vv -p rcgen-tests --target=${{ matrix.target }} ${{ matrix.cargo_options }} ${{ matrix.features }} ${{ matrix.mode }} + cargo +${{ matrix.rust_channel }} test -vv -p rcgen-tests --target=${{ matrix.target }} ${{ matrix.cargo_options }} ${{ matrix.features }} ${{ matrix.mode }} coverage: runs-on: ${{ matrix.host_os }} strategy: + fail-fast: false matrix: features: - --all-features @@ -259,24 +229,21 @@ jobs: - if: ${{ contains(matrix.host_os, 'ubuntu') }} run: sudo apt-get update -y - - uses: briansmith/actions-checkout@v2 + - uses: briansmith/actions-checkout@v4 with: persist-credentials: false + - run: rustup toolchain add --profile=minimal ${{ matrix.rust_channel }} + - run: rustup target add --toolchain=${{ matrix.rust_channel }} ${{ matrix.target }} + - if: ${{ !contains(matrix.host_os, 'windows') }} run: RING_COVERAGE=1 mk/install-build-tools.sh --target=${{ matrix.target }} ${{ matrix.features }} - - uses: briansmith/actions-rs-toolchain@v1 - with: - override: true - target: ${{ matrix.target }} - toolchain: ${{ matrix.rust_channel }} - - if: ${{ !contains(matrix.host_os, 'windows') }} run: | RING_COVERAGE=1 mk/cargo.sh +${{ matrix.rust_channel }} test --workspace -vv --target=${{ matrix.target }} ${{ matrix.cargo_options }} ${{ matrix.features }} ${{ matrix.mode }} - - uses: briansmith/codecov-codecov-action@v1 + - uses: briansmith/codecov-codecov-action@v3 with: directory: ./target/${{ matrix.target }}/debug/coverage/reports fail_ci_if_error: true