on: [push, pull_request] name: Continuous integration jobs: Nightly: name: Nightly - ASan + Bench + Docs runs-on: ubuntu-latest steps: - name: Checkout Crate uses: actions/checkout@v2 - name: Install clang for ASan run: sudo apt-get install -y clang - name: Checkout Toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly override: true components: rust-src - name: Running address sanitizer env: DO_ASAN: true run: ./contrib/test.sh - name: Running benchmarks env: DO_BENCH: true run: ./contrib/test.sh - name: Building docs env: DO_DOCS: true run: ./contrib/test.sh Tests: name: Tests runs-on: ubuntu-latest strategy: matrix: rust: [stable, beta, nightly, 1.29.0] steps: - name: Checkout Crate uses: actions/checkout@v2 - name: Checkout Toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: ${{ matrix.rust }} override: true - name: Pin cc if rust 1.29 if: matrix.rust == '1.29.0' run: cargo generate-lockfile --verbose && cargo update -p cc --precise "1.0.41" --verbose - name: Running cargo env: DO_FEATURE_MATRIX: true run: ./contrib/test.sh WASM: name: WASM runs-on: ubuntu-latest strategy: matrix: rust: [stable, beta, nightly] # No 1.29 because WASM requires Rust 1.30 steps: - name: Checkout Crate uses: actions/checkout@v2 - name: Install clang run: sudo apt-get install -y clang-9 - name: Checkout Toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: ${{ matrix.rust }} override: true components: rust-src - name: Running WASM tests env: DO_WASM: true run: ./contrib/test.sh