---
name: CI
on:
push:
branches:
- main
tags:
- 'v*'
pull_request:
jobs:
code-quality:
name: Code Quality
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: DeterminateSystems/nix-installer-action@v22
- name: Install toolchain
run: nix develop --command espup install
- name: Formatting
run: |
source "$HOME/export-esp.sh"
nix develop --command treefmt --fail-on-change
- name: Clippy
run: |
source "$HOME/export-esp.sh"
nix develop --command cargo clippy --release -F top-board-none -- -D warnings
nix develop --command cargo clippy --release -F top-board-2024 -- -D warnings
examples:
name: Examples
needs:
- code-quality
runs-on: ubuntu-latest
strategy:
matrix:
example:
- demo-2024
- demo-no-top-board
- ethernet-w5500
- i2c-scan
- imu-2024
- slow-io
steps:
- uses: actions/checkout@v6
- uses: DeterminateSystems/nix-installer-action@v22
- name: Install toolchain
run: nix develop --command espup install
- name: Clippy
run: |
source "$HOME/export-esp.sh"
cd ./examples/${{ matrix.example }}
nix develop --command cargo clippy --release -- -D warnings
- name: Build
run: |
source "$HOME/export-esp.sh"
cd ./examples/${{ matrix.example }}
nix develop --command cargo build --release