smtc-modem-cores #1215
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Continuous Integration | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
permissions: | |
checks: write | |
contents: read | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
build: | |
name: Build and run tests and build-test examples | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: setup submodules | |
run: git submodule update --init --recursive | |
- name: Cancel previous runs | |
uses: styfle/cancel-workflow-action@0.12.1 | |
with: | |
access_token: ${{ github.token }} | |
- name: Setup apt packages | |
run: sudo apt-get update && sudo apt-get install -y --no-install-recommends cmake llvm-dev clang libclang-dev | |
- name: Check formatting | |
run: cargo fmt -- --check | |
- name: Setup Cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
cache-all-crates: true | |
workspaces: | | |
. | |
examples/nrf52840 | |
examples/rp | |
examples/stm32l0 | |
examples/stm32wl | |
# Format and Clippy steps are executed in separate 'check' workflow | |
- name: Build | |
run: cargo build --all-features --all --verbose | |
- name: Run tests | |
run: cargo test --all-features --verbose | |
- name: Build nrf52840 examples | |
run: | | |
cd examples/nrf52840 | |
cargo build --release | |
- name: Build rp2040 examples | |
run: | | |
cd examples/rp | |
cargo build --release | |
- name: Build stm32l0 examples | |
run: | | |
cd examples/stm32l0 | |
cargo build --release | |
- name: Build stm32wl examples | |
run: | | |
cd examples/stm32wl | |
cargo build --release | |
checks: | |
name: Formatting checks and Clippy linter run | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install latest nightly | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: nightly | |
components: clippy, rustfmt | |
- name: Cancel previous runs | |
uses: styfle/cancel-workflow-action@0.12.1 | |
with: | |
access_token: ${{ github.token }} | |
- name: Setup apt packages | |
run: sudo apt-get update && sudo apt-get install -y --no-install-recommends cmake llvm-dev clang libclang-dev | |
- name: Setup Cache | |
uses: Swatinem/rust-cache@v2 | |
- name: Check formatting | |
run: cargo +stable fmt -- --check | |
- name: Clippy | |
run: cargo +stable clippy --tests --all-features -- -Dclippy::all | |
- name: Docs | |
env: | |
RUSTDOCFLAGS: --cfg docsrs | |
run: cargo +nightly doc --all-features |