name: check
on:
workflow_call:
workflow_dispatch:
permissions:
contents: read
defaults:
run:
shell: bash
env:
CI: "true"
CARGO_TERM_COLOR: always
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
RUSTFLAGS: -D warnings
RUSTDOCFLAGS: -D warnings
MAIN_CRATE: "astarte-interfaces"
jobs:
fmt:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
with:
submodules: true
- uses: actions-rust-lang/setup-rust-toolchain@v1.16.1
- run: cargo fmt --check --all
clippy:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
with:
submodules: true
- uses: ./.github/actions/install-deps
- uses: actions-rust-lang/setup-rust-toolchain@v1.16.1
- uses: mozilla-actions/sccache-action@v0.0.10
- name: cargo clippy
run: cargo clippy --locked --all-targets --all-features --workspace
doc:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
with:
submodules: true
- uses: ./.github/actions/install-deps
- uses: actions-rust-lang/setup-rust-toolchain@v1.16.1
with:
toolchain: nightly
- uses: mozilla-actions/sccache-action@v0.0.10
- uses: dtolnay/install@cargo-docs-rs
- run: cargo +nightly docs-rs --locked -p "$MAIN_CRATE"
features:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
with:
submodules: true
- uses: ./.github/actions/install-deps
- uses: actions-rust-lang/setup-rust-toolchain@v1.16.1
- uses: mozilla-actions/sccache-action@v0.0.10
- uses: taiki-e/install-action@v2.79.0
with:
tool: cargo-hack
- name: cargo hack test
run: cargo hack --each-feature test --locked -p "$MAIN_CRATE"
for-publish:
name: stable / for-publish
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
with:
submodules: true
- uses: ./.github/actions/install-deps
- uses: actions-rust-lang/setup-rust-toolchain@v1.16.1
- uses: mozilla-actions/sccache-action@v0.0.10
- run: ./scripts/ci/check-for-publish.sh