• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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