tildagon 0.0.4

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@v5
      - uses: cachix/install-nix-action@v31
      - uses: cachix/cachix-action@v16
        with:
          name: devenv
      - name: Install devenv.sh
        run: nix profile install nixpkgs#devenv

      - name: Install toolchain
        shell: devenv shell bash -- -e {0}
        run: espup install

      - name: Formatting
        shell: devenv shell bash -- -e {0}
        run: |
          source ./.export-esp.sh
          treefmt --fail-on-change

      - name: Clippy
        shell: devenv shell bash -- -e {0}
        run: |
          source ./.export-esp.sh
          cargo clippy --release -F top-board-none -- -D warnings
          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@v5
      - uses: cachix/install-nix-action@v31
      - uses: cachix/cachix-action@v16
        with:
          name: devenv
      - name: Install devenv.sh
        run: nix profile install nixpkgs#devenv

      - name: Install toolchain
        shell: devenv shell bash -- -e {0}
        run: espup install

      - name: Clippy
        shell: devenv shell bash -- -e {0}
        run: |
          source ./.export-esp.sh
          cd ./examples/${{ matrix.example }}
          cargo clippy --release -- -D warnings

      - name: Build
        shell: devenv shell bash -- -e {0}
        run: |
          source ./.export-esp.sh
          cd ./examples/${{ matrix.example }}
          cargo build --release