diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index fec17ad2a..730d33584 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -1,15 +1,78 @@ -name: Rust +name: CI -on: [push] +on: + pull_request: + push: + +env: + RUSTFLAGS: -Dwarnings jobs: - build: + build_and_test: + name: Build and test + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macOS-latest] + rust: [nightly] + steps: + - uses: actions/checkout@master + + - name: Install ${{ matrix.rust }} + uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ matrix.rust }} + override: true + + - name: check + uses: actions-rs/cargo@v1 + if: matrix.rust == 'nightly' + with: + command: check + args: --all --bins --examples --tests + + - name: tests + uses: actions-rs/cargo@v1 + with: + command: test + args: --all + + - name: tests ignored + uses: actions-rs/cargo@v1 + with: + command: test + args: --all --release -- --ignored + + check_fmt: + name: Checking fmt and docs + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly + override: true + components: rustfmt + + - name: fmt + run: cargo fmt --all -- --check + + clippy_check: + name: Clippy check runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - - name: Build - run: cargo build --verbose - - name: Run tests - run: cargo test --verbose + + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly + override: true + components: clippy + + - name: clippy + run: cargo clippy --all