MinedMap/.github/workflows/ci.yml
Matthias Schiffer d39e35508f
ci: add Rust CI
Check rustfmt/clippy/tests.
2023-08-22 12:31:40 +02:00

81 lines
2.2 KiB
YAML

# 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 }}