Add compilation checks for some hardware targets #29
This file contains 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: Tests | |
on: | |
push: | |
branches: | |
- main | |
pull_request: {} | |
jobs: | |
checks: | |
name: "Target Checks" | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
target: | |
- "riscv32imac-unknown-none-elf" # ESP32C6 | |
- "thumbv6m-none-eabi" # RP2040 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup build cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
targets: ${{ matrix.target }} | |
- name: Cargo check basic | |
run: cargo check --target ${{ matrix.target }} --no-default-features | |
- name: Cargo check serde | |
run: cargo check --target ${{ matrix.target }} --no-default-features --features serde | |
- name: Cargo check homeassistant with defmt | |
run: cargo check --target ${{ matrix.target }} --no-default-features --features homeassistant,defmt | |
- name: Cargo check homeassistant with log | |
run: cargo check --target ${{ matrix.target }} --no-default-features --features homeassistant,log | |
test: | |
name: "Tests and Lints" | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup build cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
components: rustfmt, clippy | |
- name: Run tests | |
run: cargo test | |
- name: Clippy | |
run: cargo clippy -- --deny "warnings" | |
- name: Rustfmt | |
run: cargo fmt --check | |
- name: Check for unused dependencies | |
uses: bnjbvr/cargo-machete@main | |
- name: Check semver | |
uses: obi1kenobi/cargo-semver-checks-action@v2 | |
with: | |
feature-group: default-features |