diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..f3a7bc6 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,67 @@ +on: + push: + branches: + - master + - staging + - trying + pull_request: + +name: CI + +jobs: + tests: + runs-on: ubuntu-latest + strategy: + matrix: + rust: + - "1.51" # minimum stable rust version + - stable + - beta + steps: + - uses: actions/checkout@v2 + + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: ${{ matrix.rust }} + override: true + components: rustfmt, clippy + + - uses: actions-rs/cargo@v1 + with: + command: build + # --all-targets ensures that we also build tests + args: --all-features --all-targets + + - uses: actions-rs/cargo@v1 + with: + command: test + + - uses: actions-rs/cargo@v1 + with: + command: fmt + args: --all -- --check + + - uses: actions-rs/cargo@v1 + with: + command: clippy + args: --all-targets -- -D warnings + + miri: + name: Miri + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly + override: true + components: miri, rust-src + + - uses: actions-rs/cargo@v1 + with: + command: miri + args: test