Files
espresso_frame/.gitea/workflows/firmware-build-check.yml
T
tfaour 1100580c2c
Build and push server image / test (push) Successful in 15s
Firmware build check / build-check (push) Successful in 2m6s
Build and push server image / build-and-push (push) Successful in 2m26s
Live-update whiteboard/tasks source display; add firmware CI build check
Whiteboard and tasks-source save/clear used to just tell the user to
reload the page to see the change. Both endpoints always assign a
successful "set" to the calling user, so the new state is fully known
client-side already -- rewrite the "Currently using/showing ..." block
in place instead, no server round trip or reload needed.

Also adds .gitea/workflows/firmware-build-check.yml: builds both board
variants (devkit, xiao) on every push touching firmware/**, unlike
firmware-release-build.yml which only builds on a version.txt bump.
Verified both builds succeed locally against the actual ESP-IDF
toolchain before wiring this in.
2026-07-23 19:08:01 -04:00

52 lines
2.0 KiB
YAML

name: Firmware build check
# Fires on every push touching firmware source, unlike
# firmware-release-build.yml (which only builds+publishes when
# firmware/version.txt itself is bumped -- the "cut a release" signal).
# This just verifies both board variants still compile; nothing else in
# CI catches a firmware/** push that breaks the build until someone
# happens to bump the version next.
on:
push:
branches: [main]
paths:
- "firmware/**"
- ".gitea/workflows/firmware-build-check.yml"
jobs:
build-check:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
# Same docker create/cp/start pattern as firmware-release-build.yml
# (see that file's own comment for why -- the runner's job
# workspace lives in a named Docker volume, not a real host path,
# so a nested `docker run -v "$PWD:..."` bind-mounts nothing
# useful). No release/artifact step here -- this only needs to
# prove `idf.py build` still succeeds for each board.
- name: Build (devkit -- ESP32-C6-DevKitC-1)
run: |
cid=$(docker create -w /workspace/firmware espressif/idf:release-v6.0 bash -c '
git config --global --add safe.directory /workspace &&
. "$IDF_PATH/export.sh" &&
./build_for_board.sh devkit set-target esp32c6 &&
./build_for_board.sh devkit build
')
docker cp "$PWD/." "$cid:/workspace"
docker start -a "$cid"
docker rm "$cid"
- name: Build (xiao -- Seeed XIAO ESP32-C6)
run: |
cid=$(docker create -w /workspace/firmware espressif/idf:release-v6.0 bash -c '
git config --global --add safe.directory /workspace &&
. "$IDF_PATH/export.sh" &&
./build_for_board.sh xiao set-target esp32c6 &&
./build_for_board.sh xiao build
')
docker cp "$PWD/." "$cid:/workspace"
docker start -a "$cid"
docker rm "$cid"