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).
49 lines
1.5 KiB
YAML
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
|