name: Continuous Integration
on: [push, pull_request]
jobs:
test:
name: Test Suite (${{ matrix.os }}, rust-${{ matrix.toolchain }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
toolchain: stable
features: std
- os: ubuntu-latest
toolchain: nightly
features: std,nightly
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install rust toolchain
run: rustup toolchain install ${{ matrix.toolchain }} --no-self-update
- name: Set default toolchain
run: rustup default ${{ matrix.toolchain }}
- name: Build
run: cargo build --verbose
- name: Run tests
run: cargo test --verbose --no-fail-fast --no-default-features
- name: Run tests (with features)
run: cargo test --verbose --no-fail-fast --features "${{ matrix.features }}"
miri:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install rust toolchain
run: rustup toolchain install nightly --no-self-update --component miri
- name: Set default toolchain
run: rustup default nightly
- name: Run tests
run: cargo miri test --verbose --no-default-features
- name: Run tests (with features)
run: cargo miri test --verbose --all-features