on: [push, pull_request] name: Continuous integration jobs: ci: runs-on: ubuntu-latest strategy: matrix: rust: - stable - beta - nightly steps: - uses: actions/checkout@v1 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: ${{ matrix.rust }} override: true components: rustfmt, clippy - name: stable/beta build uses: actions-rs/cargo@v1 if: matrix.rust == 'stable' || matrix.rust == 'beta' with: command: build args: --verbose --features "" - name: nightly build uses: actions-rs/cargo@v1 if: matrix.rust == 'nightly' with: command: build args: --verbose --all-features - name: stable/beta test uses: actions-rs/cargo@v1 if: matrix.rust == 'stable' || matrix.rust == 'beta' with: command: test args: --verbose --features "" - name: nightly test uses: actions-rs/cargo@v1 if: matrix.rust == 'nightly' with: command: test args: --verbose --all-features - name: stable/beta clippy uses: actions-rs/cargo@v1 if: matrix.rust == 'stable' || matrix.rust == 'beta' with: command: clippy args: --all-targets --features "" -- -D warnings - name: nightly clippy uses: actions-rs/cargo@v1 if: matrix.rust == 'nightly' with: command: clippy args: --all-targets --all-features -- -D warnings - name: Test the examples run: cd examples && bash test_examples.sh - name: fmt uses: actions-rs/cargo@v1 if: matrix.rust == 'nightly' with: command: fmt args: --all -- --check