Skip to content

Commit

Permalink
CI: Sync GitHub Actions workflow definitions with *ring*.
Browse files Browse the repository at this point in the history
  • Loading branch information
briansmith committed Dec 5, 2023
1 parent 5d8cd6b commit 5ece21a
Showing 1 changed file with 34 additions and 67 deletions.
101 changes: 34 additions & 67 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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

Expand All @@ -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

Expand All @@ -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

Expand All @@ -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

Expand Down Expand Up @@ -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
Expand All @@ -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

Expand All @@ -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
Expand All @@ -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
Expand Down

0 comments on commit 5ece21a

Please sign in to comment.