Template
A stage tag (v*) now builds, with kicad-cli, pandoc and pdflatex in the CI image (.gitea/scripts/release-files.py): - per board: Gerbers + Excellon drill zip (JLCPCB-compatible settings), BOM (grouped, DNP left out), pick and place, schematic and PCB PDFs, 3D renders; - docs/*.md and docs/tex/*.tex as PDF, tag and commit in the footer; - release/README.md with tag, commit, ERC/DRC result, files, SHA-256 and the stage's CHANGELOG section. Every file name carries the tag. release-attach.py attaches the files plus a zip of the whole folder to the tag's release (replacing assets of an earlier run); for the newest stage tag (not older stages, not pre-releases) the job commits them to release/ on main with [skip ci]. .gitignore: !/release/ after Release/ (Windows matches it case-insensitively); .gitattributes: release/** -text so the SHA-256 match on every checkout. TEMPLATE.md: "Release files" section, rules and CI updated. Tested in git.b4l.co.th/b4l/kicad10_auto_node with harNES's board and docs: v0.1 committed, v0.0 and v0.2-rc.1 left release/ alone, v0.2 tagged on an older commit landed on top of a moved main; uploads byte-exact against a stub of the Gitea release API.
$REPO_NAME board
The KiCad project of $REPO_NAME lives here: create it with KiCad (File, New
Project) as hardware/$REPO_NAME/$REPO_NAME.kicad_pro.
- A revision of this board is a git tag (
v0.1), not a copy of this folder. - A real variant built next to it (48 V, 2-board) gets its own folder under
hardware/and its own[[boards]]entry inproplan.toml. - Shared symbols, footprints and 3D models go to
hardware/lib/. - Gerbers, BOMs and PDFs are built by CI, never committed by hand: KiBot checks
every push (
.gitea/workflows/kibot.yml), and a stage tag puts the board's files intorelease/hardware/$REPO_NAME/(.gitea/workflows/release.yml).