Files
product-template/.gitea/workflows/kibot.yml
T
grabowski 421b4202cc Product repository template
Layout, proplan.toml, README/CHANGELOG, placeholder product image, .gitignore, KiBot/release/docgen workflows and TEMPLATE.md. Source of truth: contrib/product-template in B4L/proplan (cargo test --test product_template checks it as Gitea 1.27 creates a repository from it).
2026-10-13 16:32:25 +07:00

49 lines
1.5 KiB
YAML

name: KiBot
# Checks every board (hardware/*/*.kicad_pro): ERC, DRC, schematic PDF,
# gerbers, drill, pick and place, BOM; the outputs are kept as an artifact.
# Adapted from LVSolarBuck (runner label kicad10_auto). Without a board yet
# the job ends right away.
on:
push:
branches: [main]
paths:
- 'hardware/**'
- 'kibot.yaml'
- '.gitea/workflows/kibot.yml'
pull_request:
paths:
- 'hardware/**'
- 'kibot.yaml'
workflow_dispatch:
jobs:
boards:
runs-on: kicad10_auto
steps:
- uses: actions/checkout@v4
- name: Find boards
id: boards
run: |
found=$(find hardware -mindepth 2 -maxdepth 2 -name '*.kicad_pro' | sort | tr '\n' ' ')
echo "projects=$found" >> "$GITHUB_OUTPUT"
if [ -z "$found" ]; then echo "No KiCad project under hardware/ yet."; fi
- name: KiBot
if: steps.boards.outputs.projects != ''
run: |
for pro in ${{ steps.boards.outputs.projects }}; do
dir=$(dirname "$pro"); board=$(basename "$dir")
echo "== $board"
(cd "$dir" && kibot -c "$GITHUB_WORKSPACE/kibot.yaml" -d "$GITHUB_WORKSPACE/Generated/$board" -v) \
|| echo "::warning::KiBot reported problems for $board"
done
- name: Keep the outputs
if: steps.boards.outputs.projects != ''
uses: https://github.com/christopherHX/gitea-upload-artifact@v4
with:
name: kibot-outputs
path: Generated