Central automation and CI/CD tools for Purdue ROV hardware designs. This repository contains shared KiBot export profiles, symbol linting scripts, distributor sourcing checks, visual layout diffing tools, and reusable GitHub Actions workflows.
kibot_master.yaml: Shared KiBot configuration defining preflight validation (ERC, ERC warnings, zone fill checks) and manufacturing exports (PDF schematics, Interactive HTML BOM, Gerbers, and drill files).
linter_validator.py: Checks.kicad_symfiles for required fields (Category,MPN,Manufacturer,Datasheet,Temp_Range,DigiKey).fetch_sourcing_bom.py: Queries DigiKey and Mouser APIs for component lifecycle status (EOL, NRND) and real-time inventory.visual_diff.sh: Renders and compares PCB copper layers between git branches usingkicad-cliand ImageMagick.sync_template_to_all.ps1/sync_template_to_all.sh: Propagates shared scripts and configuration updates across team board repositories.
run-kicad-ci.yml: Reusable workflow called by board repositories to run preflight validation, linting, sourcing checks, and manufacturing exports.devops-ci.yml: CI workflow validating Python scripts and YAML syntax for this repository.
To run automated checks on PRs and pushes in a board repository, add .github/workflows/ci.yml:
name: Hardware CI/CD Pipeline
on:
push:
branches: [ master, main, develop ]
pull_request:
branches: [ master, main, develop ]
jobs:
run-validation:
uses: purduerov/pcb-devops/.github/workflows/run-kicad-ci.yml@masterFor component stock and lifecycle checks in GitHub Actions:
- DigiKey: Add
DIGIKEY_CLIENT_ID,DIGIKEY_CLIENT_SECRET, andDIGIKEY_REFRESH_TOKENto repository secrets. - Mouser: Add
MOUSER_API_KEYto repository secrets.