diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..9ee03af --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,81 @@ +# A lot of this has been copied from https://github.com/axodotdev/cargo-dist/blob/main/.github/workflows/ci.yml + +name: MinedMap Rust CI + +on: + pull_request: + push: + +env: + RUSTFLAGS: -Dwarnings + RUSTDOCFLAGS: -Dwarnings + +jobs: + fmt: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: dtolnay/rust-toolchain@master + with: + # Use beta for now for let-else formatting + toolchain: beta + components: rustfmt + - run: cargo fmt --all -- --check + + clippy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: dtolnay/rust-toolchain@master + with: + toolchain: stable + components: clippy + - uses: swatinem/rust-cache@v2 + - uses: actions-rs/clippy-check@v1 + env: + PWD: ${{ env.GITHUB_WORKSPACE }} + with: + token: ${{ secrets.GITHUB_TOKEN }} + args: --workspace --tests --examples + + docs: + runs-on: ubuntu-latest + env: + RUSTDOCFLAGS: -Dwarnings + steps: + - uses: actions/checkout@master + - uses: dtolnay/rust-toolchain@master + with: + toolchain: stable + components: rust-docs + - uses: swatinem/rust-cache@v2 + - run: cargo doc --workspace --no-deps --document-private-items + + test: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macOS-latest] + rust: [stable] + steps: + - uses: actions/checkout@master + - uses: dtolnay/rust-toolchain@master + with: + toolchain: ${{ matrix.rust }} + - uses: swatinem/rust-cache@v2 + # Run the tests/doctests (default features) + - run: cargo test --workspace + env: + PWD: ${{ env.GITHUB_WORKSPACE }} + # Run the tests/doctests (no default features) + - run: cargo test --workspace --no-default-features + env: + PWD: ${{ env.GITHUB_WORKSPACE }} + # Test the examples (default features) + - run: cargo test --workspace --examples --bins + env: + PWD: ${{ env.GITHUB_WORKSPACE }} + # Test the examples (no default features) + - run: cargo test --workspace --no-default-features --examples --bins + env: + PWD: ${{ env.GITHUB_WORKSPACE }}