KiCad checks run on our server, not GitHub Actions¶
kicad-check on the Plex server (~/.local/bin/kicad-check) is the only ERC/DRC check for the KiCad library. No GitHub Actions workflow. GitHub (EmbeddedEra/KiCad) stays as storage: the off-site copy and the remote the Mac and Windows laptop clone from.
- Gate:
~/kicad-lib/.git/hooks/pre-pushrunskicad-checkwhenever master is pushed and refuses the push on any error (about 2 minutes). Merge into master on the server, then push. The hook is not versioned; it lives only in the server clone, which is where merges happen. - Weekly:
kicad-check.timer(Sunday 05:30) still runs it across every project and saves the result for the audit. - Board projects too: builds run on the server, never in GitHub Actions. Hellen boards use
hellen-create-board(EmbeddedEra/KiCadscripting/hellen/) (first: rusefi-sti-2004, 2026-10-13); the upstream GitHub workflows are deleted from our forks. - One copy of the rules. The KiCad version and the fragment exemptions live in
kicad-checkalone. - Hierarchical schematics are checked from the root. A
.kicad_schnamed as another sheet'sSheetfileis skipped; the root ERC covers it (2026-10-16, the template split into sheets: alone, each sub-sheet failed on${Project_Name}with no project to resolve it).
Why: the GitHub copy (.github/scripts/kicad_checks.py) drifted from kicad-check, and the drift was the entire cause of CI being red from 2026-10-08 (21 invalid_outline errors on design blocks that kicad-check already exempted). Master had no branch protection, so the red check blocked nothing. A second copy of the same rules costs upkeep and gives a wrong answer whenever it lags.
Related: KiCad, kicad-own-libraries-only, SOP-008, SOP-021.