Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI: Sync GitHub Actions configuration with *ring*'s #296

Merged
merged 3 commits into from
Dec 6, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 29 additions & 75 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,12 +33,9 @@ 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
Expand All @@ -54,7 +45,7 @@ jobs:

- run: cargo install cargo-audit --vers "0.13.1"

- uses: briansmith/actions-checkout@v2
- uses: briansmith/actions-checkout@v4
with:
persist-credentials: false

Expand All @@ -66,12 +57,9 @@ 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
Expand All @@ -81,7 +69,7 @@ jobs:

- run: cargo install cargo-deny --locked --vers "0.8.5"

- uses: briansmith/actions-checkout@v2
- uses: briansmith/actions-checkout@v4
with:
persist-credentials: false

Expand All @@ -91,24 +79,10 @@ jobs:
rustdoc:
runs-on: ubuntu-22.04

strategy:
matrix:
rust_channel:
- stable
- 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 +93,9 @@ jobs:
runs-on: ubuntu-22.04

steps:
- uses: briansmith/actions-rs-toolchain@v1
with:
toolchain: stable
profile: minimal
- run: rustup --version

- uses: briansmith/actions-checkout@v2
- uses: briansmith/actions-checkout@v4
with:
persist-credentials: false

Expand Down Expand Up @@ -165,11 +136,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,44 +158,38 @@ 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

- if: ${{ matrix.target == 'aarch64-pc-windows-msvc' }}
run: |
echo "C:\Program Files (x86)\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\x64\bin" >> $GITHUB_PATH
shell: bash

- 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 }}
Expand Down Expand Up @@ -259,27 +219,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: ${{ matrix.target == 'aarch64-apple-darwin' }}
run: echo "DEVELOPER_DIR=/Applications/Xcode_12.2.app/Contents/Developer" >> $GITHUB_ENV

- 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