Skip to content

chore: update rstest dependency #324

chore: update rstest dependency

chore: update rstest dependency #324

Workflow file for this run

name: Test
on:
pull_request:
push:
branches:
- main
jobs:
Check:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
components: clippy, rustfmt
- name: Setup Rust
run: |
rustup update nightly --no-self-update
rustup default nightly
- name: Rust toolchain info
run: |
cargo --version --verbose
rustc --version
cargo clippy --version
cargo fmt --version
- name: check no optional features
run: cargo check --verbose
- name: check with all features
run: cargo check --verbose --all-features
- name: check with formatting
run: cargo fmt --all -- --check
# TODO: enable clippy once I write docs for all public items
# - name: check with clippy
# run: cargo clippy --all --all-targets --all-features -- -D warnings
Check_Stable:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Rust
run: rustup override set stable
- name: Cache Rust
uses: Swatinem/rust-cache@v2
- name: Run cargo check
run: cargo check --no-default-features --features "half,float"
Test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ['windows-latest', 'macOS-latest', 'ubuntu-latest']
rust: ['nightly'] # ['stable', 'beta']
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
- name: Setup Rust
run: |
rustup update nightly --no-self-update
rustup default nightly
- name: Cache Dependencies
uses: Swatinem/rust-cache@v1
- name: Run tests (debug) - no default features
run: cargo test --verbose --no-default-features
- name: Run tests (debug) - default features
run: cargo test --verbose
- name: Run tests (debug) - all features
run: cargo test --verbose --all-features
- name: Run tests (release) - all features
run: cargo test --verbose --all-features --release
Bench:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ['windows-latest', 'macOS-latest', 'ubuntu-latest']
rust: ['nightly'] # ['stable', 'beta']
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
- name: Setup Rust
run: |
rustup update nightly --no-self-update
rustup default nightly
- name: Cache Dependencies
uses: Swatinem/rust-cache@v1
- name: Run benchmarks
run: cargo bench --quiet --message-format=short --all-features | grep "time:"
Build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target:
# We shouldn't really have any OS-specific code, so think of this as a list of architectures
- x86_64-unknown-linux-gnu
- i686-unknown-linux-gnu
- i586-unknown-linux-gnu
- aarch64-unknown-linux-gnu
- armv7-unknown-linux-gnueabihf
# MIPS is currently not supported anymore on nightly chains.
# more information:
# - https://github.com/rust-lang/compiler-team/issues/648
# - https://github.com/rust-lang/rust/pull/113274
# - mips-unknown-linux-gnu
# - mips64-unknown-linux-gnuabi64
- powerpc-unknown-linux-gnu
- powerpc64-unknown-linux-gnu
- riscv64gc-unknown-linux-gnu
- s390x-unknown-linux-gnu
- sparc64-unknown-linux-gnu
- wasm32-unknown-unknown
steps:
- uses: actions/checkout@v2
- name: Setup Rust
run: |
rustup update nightly --no-self-update
rustup default nightly
rustup target add ${{ matrix.target }}
# rustup component add clippy
# - name: Run Clippy
# run: cargo clippy --all-targets --target ${{ matrix.target }}
- name: Build (release) - all features
run: cargo build --target ${{ matrix.target }} --release --all-features
- name: Build (release) - default features
run: cargo build --target ${{ matrix.target }} --release
- name: Build (release) - no default features
run: cargo build --target ${{ matrix.target }} --release --no-default-features
- name: Build (release) - only float
run: cargo build --target ${{ matrix.target }} --release --no-default-features --features float
- name: Build (release) - only half
run: cargo build --target ${{ matrix.target }} --release --no-default-features --features half
- name: Build (release) - only float and half features
run: cargo build --target ${{ matrix.target }} --release --no-default-features --features "half,float"
- name: Override to stable toolchain
run: |
rustup override set stable
rustup target add ${{ matrix.target }}
- name: Build (release) - no default features
run: cargo build --target ${{ matrix.target }} --release --no-default-features
- name: Build (release) - only float
run: cargo build --target ${{ matrix.target }} --release --no-default-features --features float
- name: Build (release) - only half
run: cargo build --target ${{ matrix.target }} --release --no-default-features --features half
- name: Build (release) - only float and half features
run: cargo build --target ${{ matrix.target }} --release --no-default-features --features "half,float"
# - name: Run cargo-tarpaulin
# uses: actions-rs/tarpaulin@v0.1
# with:
# args: '--features half -- --test-threads 1'
# - name: Upload to codecov.io
# uses: codecov/codecov-action@v3
# largely inspired by: https://github.com/rust-lang/portable-simd/blob/master/.github/workflows/ci.yml