Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Purdue ROV PCB DevOps

This repository houses the central CI/CD automation configurations, KiBot master profiles, symbol linter validators, component sourcing scripts, and reusable GitHub Actions workflows for hardware validation (ERC/DRC) and fabrication package generation.


📂 Repository Contents

1. Configurations

  • kibot_master.yaml: Master configuration file dictating preflight validation rules (ERC, ERC warnings, zone fills check, with run_drc: false for early-stage layout flexibility) and manufacturing exports (PDF schematic, interactive HTML BOM, Gerber & Drill files).

2. Validation & Sourcing Scripts (scripts/)

  • scripts/linter_validator.py: Central Python linter script verifying mandatory symbol fields (MPN, Manufacturer, Datasheet, Temp_Range, DigiKey, Category). Supports CLI wildcards and skips graphic sub-symbols (e.g. _0_0).
  • scripts/fetch_sourcing_bom.py: Component sourcing script querying distributor APIs:
    • DigiKey v4 Product Search API (OAuth2 token refresh caching in digikey_token.json).
    • Mouser Search API.
    • Lifecycle & Stock Alerts: Warns if parts are EOL, NRND, or out of stock.
  • scripts/visual_diff.sh: Visual diff tool generating pixel-by-pixel comparisons of copper layout layers between git branches using kicad-cli and ImageMagick.

3. Workflows (.github/workflows/)

  • .github/workflows/run-kicad-ci.yml: Central reusable CI pipeline executed by board repositories to run preflight validation, central linter, sourcing checks, and fabrication artifact generation.
  • .github/workflows/devops-ci.yml: Self-validation pipeline testing Python scripts and verifying kibot_master.yaml YAML syntax on every push or PR.

🚀 Integration in Board Repositories

To enable automated CI checks in any board repository, create .github/workflows/ci.yml in your board repository:

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@master

🔒 Environment Secrets

For component stock and lifecycle checks in cloud CI:

  • Mouser: Add secret MOUSER_API_KEY.
  • DigiKey: Add secrets DIGIKEY_CLIENT_ID, DIGIKEY_CLIENT_SECRET, DIGIKEY_REFRESH_TOKEN.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages