name: library
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:
minimal-versions:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
with:
submodules: true
- uses: ./.github/actions/install-deps
- name: install rust stable
uses: actions-rust-lang/setup-rust-toolchain@v1.16.1
- name: install rust nightly
uses: actions-rust-lang/setup-rust-toolchain@v1.16.1
with:
toolchain: nightly
- uses: mozilla-actions/sccache-action@v0.0.10
- uses: taiki-e/install-action@v2.79.0
with:
tool: cargo-hack,cargo-minimal-versions
- run: rustup default stable
- name: Check minimal versions
run: cargo minimal-versions check --workspace --ignore-private --detach-path-deps=skip-exact --direct
msrv:
runs-on: ubuntu-24.04
strategy:
matrix:
msrv: [1.85] name: msrv / ${{ matrix.msrv }}
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: ${{ matrix.msrv }}
- uses: mozilla-actions/sccache-action@v0.0.10
- uses: taiki-e/install-action@v2.79.0
with:
tool: cargo-hack
- name: cargo +${{ matrix.msrv }} check
run: cargo +${{ matrix.msrv }} hack --no-dev-deps check --all-features -p "$MAIN_CRATE"
semver:
if: startsWith(github.base_ref, 'release-') || startsWith(github.ref, 'release-')
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
with:
submodules: true
- uses: actions-rust-lang/setup-rust-toolchain@v1.16.1
- uses: mozilla-actions/sccache-action@v0.0.10
- name: Check library API semver breakages
uses: obi1kenobi/cargo-semver-checks-action@v2.9
with:
release-type: patch