---
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
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