Skip to content

CI

CI #29

Workflow file for this run

name: CI
on:
push:
branches: [ "main" ]
pull_request: {}
merge_group:
branches: [ "main" ]
env:
CARGO_TERM_COLOR: always
RUSTFLAGS: "-D warnings"
jobs:
rustfmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: hecrj/setup-rust-action@v2
with:
components: rustfmt
- run: cargo fmt --all --check
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: hecrj/setup-rust-action@v2
with:
components: clippy
- uses: Swatinem/rust-cache@v2
- run: cargo clippy --workspace --all-features --all-targets
cross_platform_tests:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macOS-latest, windows-latest]
toolchain: [stable, beta, nightly]
steps:
- uses: actions/checkout@v4
- uses: hecrj/setup-rust-action@v2
with:
rust-version: ${{ matrix.toolchain }}
- uses: taiki-e/install-action@protoc
- uses: Swatinem/rust-cache@v2
- run: cargo test --all-features
- uses: taiki-e/install-action@cargo-no-dev-deps
- run: cargo no-dev-deps --no-private check --all-features
- run: cargo no-dev-deps --no-private doc --no-deps --all-features
env:
RUSTDOCFLAGS: "-D warnings"
msrv:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: hecrj/setup-rust-action@v2
- run: cargo update
env:
CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS: fallback
- name: Get MSRV from metadata
id: msrv
run: |
MSRV=$(cargo metadata --no-deps --format-version 1 | jq -r '.packages[0].rust_version')
echo "version=${MSRV}" >> $GITHUB_OUTPUT
- uses: hecrj/setup-rust-action@v2
with:
rust-version: ${{ steps.msrv.outputs.version }}
- uses: Swatinem/rust-cache@v2
- run: cargo check --all-features
- uses: taiki-e/install-action@cargo-no-dev-deps
- run: cargo no-dev-deps --no-private check --all-features
- run: cargo no-dev-deps --no-private doc --no-deps --all-features
env:
RUSTDOCFLAGS: "-D warnings"