1on: 2 push: 3 branches: [ master ] 4 pull_request: 5 branches: [ master ] 6 7name: Continuous integration 8 9env: 10 CARGO_TERM_COLOR: always 11 CARGO_INCREMENTAL: 0 12 13jobs: 14 tests: 15 runs-on: ubuntu-latest 16 continue-on-error: ${{ matrix.experimental }} 17 strategy: 18 matrix: 19 include: 20 - rust: 1.51.0 # MSRV 21 features: serde 22 experimental: false 23 - rust: stable 24 features: 25 bench: true 26 experimental: false 27 - rust: beta 28 features: serde 29 experimental: false 30 - rust: nightly 31 features: serde, zeroize 32 experimental: false 33 34 steps: 35 - uses: actions/checkout@v2 36 - uses: actions-rs/toolchain@v1 37 with: 38 profile: minimal 39 toolchain: ${{ matrix.rust }} 40 override: true 41 - name: Tests 42 run: | 43 cargo build --verbose --features "${{ matrix.features }}" 44 cargo doc --verbose --features "${{ matrix.features }}" --no-deps 45 cargo test --verbose --features "${{ matrix.features }}" 46 cargo test --release --verbose --features "${{ matrix.features }}" 47 - name: Test run benchmarks 48 if: matrix.bench != '' 49 run: cargo test -v --benches 50 51 miri: 52 runs-on: ubuntu-latest 53 steps: 54 - uses: actions/checkout@v2 55 - name: Install Miri 56 run: | 57 rustup toolchain install nightly --component miri 58 rustup override set nightly 59 cargo miri setup 60 - name: Test with Miri 61 run: cargo miri test --all-features 62