| on: |
| push: |
| branches: [ master ] |
| pull_request: |
| branches: [ master ] |
| |
| name: Continuous integration |
| |
| env: |
| CARGO_TERM_COLOR: always |
| CARGO_INCREMENTAL: 0 |
| |
| jobs: |
| tests: |
| runs-on: ubuntu-latest |
| continue-on-error: ${{ matrix.experimental }} |
| strategy: |
| matrix: |
| include: |
| - rust: 1.51.0 # MSRV |
| features: serde |
| experimental: false |
| - rust: stable |
| features: |
| bench: true |
| experimental: false |
| - rust: beta |
| features: serde |
| experimental: false |
| - rust: nightly |
| features: serde, zeroize |
| experimental: false |
| |
| steps: |
| - uses: actions/checkout@v2 |
| - uses: actions-rs/toolchain@v1 |
| with: |
| profile: minimal |
| toolchain: ${{ matrix.rust }} |
| override: true |
| - name: Tests |
| run: | |
| cargo build --verbose --features "${{ matrix.features }}" |
| cargo doc --verbose --features "${{ matrix.features }}" --no-deps |
| cargo test --verbose --features "${{ matrix.features }}" |
| cargo test --release --verbose --features "${{ matrix.features }}" |
| - name: Test run benchmarks |
| if: matrix.bench != '' |
| run: cargo test -v --benches |
| |
| miri: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Install Miri |
| run: | |
| rustup toolchain install nightly --component miri |
| rustup override set nightly |
| cargo miri setup |
| - name: Test with Miri |
| run: cargo miri test --all-features |