Improve CI for examples #13
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
# This action builds* all the pushes to master, staging and trying which are required for bors. | |
# Additionally it builds* for each PR. | |
# | |
# * builds includes building, checking, testing, checking format and clippy, as well as the changelog. | |
on: | |
push: | |
branches: [master, staging, trying] | |
pull_request: | |
merge_group: | |
# Cancel any currently running workflows from the same PR, branch, or | |
# tag when a new workflow is triggered. | |
# | |
# https://stackoverflow.com/a/66336834 | |
concurrency: | |
cancel-in-progress: true | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
name: Run CI | |
jobs: | |
check: | |
name: Check | |
strategy: | |
matrix: | |
toolchain: | |
- stable | |
- nightly | |
#os: | |
#- ubuntu-latest | |
#- windows-latest | |
#- macos-14 | |
log_kind: | |
- log | |
- defmt | |
target_and_example: [ | |
# RISC-V devices: | |
{ target: "riscv32imac-unknown-none-elf", example: "examples/esp32c6/Cargo.toml" }, | |
# arm7 devices: | |
{ target: "thumbv7em-none-eabihf", example: "examples/stm32f767/Cargo.toml" }, | |
] | |
runs-on: ubuntu-latest #${{ matrix.os }} | |
env: | |
VCPKGRS_DYNAMIC: 1 # Use dynamic linking on Windows build (vcpkg) | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Install target | |
uses: dtolnay/rust-toolchain@v1 | |
with: | |
target: ${{ matrix.target_and_example.target}} | |
toolchain: ${{ matrix.toolchain }} | |
components: rust-src | |
- name: Cache Dependencies | |
uses: Swatinem/[email protected] | |
- name: Run cargo check for embedded-test | |
run: cargo check --target ${{ matrix.target_and_example.target}} --features ${{matrix.log_kind}} --locked | |
- name: Run cargo check for example | |
run: cargo check --target ${{ matrix.target_and_example.target}} --no-default-features --features ${{matrix.log_kind}} --manifest-path ${{matrix.target_and_example.example}} --locked --all-targets | |
fmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Run cargo fmt | |
run: cargo fmt --all -- --check | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Install riscv32imac-unknown-none-elf target | |
run: rustup target add riscv32imac-unknown-none-elf | |
- name: Cache Dependencies | |
uses: Swatinem/[email protected] | |
- name: Run cargo clippy | |
run: cargo clippy --locked -- -D warnings |