tildagon 0.0.5

Board support crate for the Electromagnetic Field Tildagon badge
---
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
          - i2c-scan
          - imu-2024

    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