Skip to content

Commit

Permalink
Update CI
Browse files Browse the repository at this point in the history
  • Loading branch information
SombkeMaximilian committed Feb 11, 2025
1 parent 99fd6df commit 5067f7c
Showing 1 changed file with 107 additions and 62 deletions.
169 changes: 107 additions & 62 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,91 +6,136 @@ on:
pull_request:
branches: [ "main" ]

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true

env:
CARGO_TERM_COLOR: always
RUSTFLAGS: -D warnings
RUST_BACKTRACE: 1
RUSTUP_WINDOWS_PATH_ADD_BIN: 1
rust_stable: stable
rust_nightly: nightly
rust_min: "1.78"

jobs:
test:
runs-on: ubuntu-latest
defaults:
run:
shell: bash

strategy:
matrix:
toolchain: [ stable, beta, nightly ]
permissions:
contents: read

jobs:
all-tests-pass:
name: LGTM™
runs-on: ubuntu-latest
needs:
- fmt
- clippy
- docs
- minrust
- test-metabodecon-full
steps:
- uses: actions/checkout@v4

- name: Set up Rust
run: rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }}
- run: exit 0

- name: Run tests
run: cargo test --verbose

benchmark:
basics:
name: basics
runs-on: ubuntu-latest
needs:
- fmt
- clippy
- docs
- minrust
steps:
- run: exit 0

strategy:
matrix:
toolchain: [ stable, beta, nightly ]

fmt:
name: fmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Rust
run: rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }}

- name: Run benchmarks
run: cargo bench --profile release --verbose

- name: Upload benchmark reports
if: always()
uses: actions/upload-artifact@v4
- name: Install Rust ${{ env.rust_nightly }}
uses: dtolnay/rust-toolchain@nightly
with:
name: criterion-report-${{ matrix.toolchain }}
path: target/criterion/
toolchain: ${{ env.rust_nightly }}
components: rustfmt
- uses: Swatinem/rust-cache@v2
- name: "rustfmt --check"
run: cargo fmt -- --check

clippy:
name: clippy
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Install Rust ${{ env.rust_stable }}
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ env.rust_stable }}
- name: "clippy --all"
run: cargo clippy --all --all-targets --all-features

- name: Set up Rust
run: rustup update stable && rustup default stable

- name: Run clippy
run: cargo clippy --all-targets --all-features -- -D warnings

fmt:
runs-on: ubuntu-latest

docs:
name: docs
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- windows-latest
- ubuntu-latest
- macos-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust ${{ env.rust_nightly }}
uses: dtolnay/rust-toolchain@nightly
with:
toolchain: ${{ env.rust_nightly }}
- uses: Swatinem/rust-cache@v2
- name: "doc --all-features"
run: |
cargo doc --all-features --no-deps --document-private-items
cargo doc --all-features --no-deps
env:
RUSTFLAGS: --cfg docsrs
RUSTDOCFLAGS: --cfg docsrs
- name: Upload docs
if: matrix.os == 'ubuntu-latest'
uses: actions/upload-artifact@v4
with:
name: docs
path: target/doc/

- name: Set up Rust
run: rustup update nightly && rustup default nightly

- name: Install Rustfmt
run: rustup component add rustfmt --toolchain nightly

- name: Run fmt
run: cargo fmt --all -- --check

doc:
minrust:
name: minrust
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Set up Rust
run: rustup update stable && rustup default stable

- name: Run doc
run: cargo doc --document-private-items --no-deps

- name: Upload doc
uses: actions/upload-artifact@v4
- name: Install Rust ${{ env.rust_min }}
uses: dtolnay/rust-toolchain@stable
with:
name: doc
path: target/doc/
toolchain: ${{ env.rust_min }}
- uses: Swatinem/rust-cache@v2
- name: "check --workspace --all-features"
run: cargo check --workspace --all-features

test-metabodecon-full:
name : test-metabodecon-full
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- windows-latest
- ubuntu-latest
- macos-latest
needs:
- basics
steps:
- uses: actions/checkout@v4
- name: Install Rust ${{ env.rust_stable }}
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ env.rust_stable }}
- uses: Swatinem/rust-cache@v2
- name: test metabodecon full
run: cargo test --features full

0 comments on commit 5067f7c

Please sign in to comment.