Skip to content

Commit 8ae522f

Browse files
jonfroehlichclaude
andcommitted
Add compile-check CI for verified-green sketch folders
Compile sketches on push to master + PRs via arduino/compile-sketches. Starts green on avr:uno (Basics, OLED, Filters, Servo) and avr:leonardo (HumanInterfaceDevice, GameController); coverage grows as #11/#12 close. Closes #10. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 3452a55 commit 8ae522f

1 file changed

Lines changed: 70 additions & 0 deletions

File tree

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# Compiles sketches on every push to master and every PR, so a change that breaks
2+
# a sketch is caught before it lands. Mirrors the CI in makelab-arduino-lib.
3+
#
4+
# START-GREEN POLICY: this gates only on folders verified to compile cleanly (via
5+
# a full arduino-cli sweep). Coverage grows as issues close:
6+
# - ESP32/ is mid core-v3.x migration .......... #12
7+
# - Sensors/PlayingMusic/AddressableLEDs/Serial have wrong-board sketches that
8+
# need per-sketch sketch.yaml board targeting .. #11
9+
# - CPX/ (samd), nRF52840/ (nrf52), UnoR4WiFi/ ... add once their heavier cores
10+
# are wired in here.
11+
# Legacy sketches (docs/legacy-sketches.md) are never gated; add a skip step here
12+
# when a gated folder starts including any.
13+
name: Compile Sketches
14+
15+
on:
16+
push:
17+
branches: [master]
18+
pull_request:
19+
workflow_dispatch:
20+
21+
jobs:
22+
compile:
23+
name: ${{ matrix.fqbn }}
24+
runs-on: ubuntu-latest
25+
strategy:
26+
fail-fast: false
27+
matrix:
28+
include:
29+
- fqbn: arduino:avr:uno
30+
platform: arduino:avr
31+
sketch-paths: |
32+
- Basics
33+
- OLED
34+
- Filters
35+
- Servo
36+
- fqbn: arduino:avr:leonardo
37+
platform: arduino:avr
38+
sketch-paths: |
39+
- HumanInterfaceDevice
40+
- GameController
41+
42+
steps:
43+
- name: Checkout
44+
uses: actions/checkout@v4
45+
46+
- name: Compile sketches
47+
uses: arduino/compile-sketches@v1
48+
with:
49+
fqbn: ${{ matrix.fqbn }}
50+
platforms: |
51+
- name: ${{ matrix.platform }}
52+
# Libraries used by the gated folders. The MakeabilityLab library is
53+
# installed straight from its repo (not yet in Library Manager). The
54+
# rest come from Library Manager; deps are listed explicitly so an
55+
# upstream resolution change can't silently break the build.
56+
libraries: |
57+
- source-url: https://github.com/makeabilitylab/makelab-arduino-lib.git
58+
- name: Adafruit SSD1306
59+
- name: Adafruit GFX Library
60+
- name: Adafruit BusIO
61+
- name: Adafruit Unified Sensor
62+
- name: Adafruit LIS3DH
63+
- name: Adafruit TCS34725
64+
- name: MedianFilterLib2
65+
- name: Servo
66+
- name: Mouse
67+
- name: Keyboard
68+
sketch-paths: ${{ matrix.sketch-paths }}
69+
enable-warnings-report: true
70+
verbose: false

0 commit comments

Comments
 (0)