61 lines
2.2 KiB
Bash

#!/bin/bash
set -e
echo "🛠 Starting Generate-PCB-Outputs..."
# Find KiCad project files
PRO_FILENAME=$(find . -type f -name '*.kicad_pro' | head -n 1)
PROJECT_NAME=$(basename "$PRO_FILENAME" .kicad_pro)
SCH_FILENAME="${PROJECT_NAME}.kicad_sch"
PCB_FILENAME="${PROJECT_NAME}.kicad_pcb"
RELEASE_TAG=$(git describe --tags --abbrev=0)
echo "🔍 SCH: $SCH_FILENAME"
echo "📐 PCB: $PCB_FILENAME"
echo "📛 Project: $PROJECT_NAME"
echo "🏷 Tag: $RELEASE_TAG"
mkdir -p output gerbers
# Generate Interactive BOM
echo "📄 Generating Interactive BOM..."
INTERACTIVE_HTML_BOM_NO_DISPLAY=1 generate_interactive_bom $PCB_FILENAME \
--dest-dir output/ \
--name-format "${PROJECT_NAME}_${RELEASE_TAG}_IBOM" \
--show-fields "References,Value,Footprint,Description,MPN,Manufacturer,Quantity" \
--group-fields "Value,Footprint" \
--dnp-field kicad_dnp \
--include-tracks \
--include-nets \
--extra-data-file $PCB_FILENAME
# Generate fabrication files
echo "📁 Exporting Gerbers, Drill, and Pos files..."
kicad-cli pcb export gerbers $PCB_FILENAME --board-plot-params -o gerbers/ -D REVISION="${RELEASE_TAG}"
kicad-cli pcb export drill $PCB_FILENAME -o gerbers/
kicad-cli pcb export pos $PCB_FILENAME --side front -o "gerbers/${PROJECT_NAME}_centroid-top.pos"
kicad-cli pcb export pos $PCB_FILENAME --side back -o "gerbers/${PROJECT_NAME}_centroid-bottom.pos"
# Zip Gerbers
echo "🗜️ Zipping Gerbers..."
cd gerbers
zip "../output/${PROJECT_NAME}_${RELEASE_TAG}_GBR.zip" *
cd ..
# STEP file
echo "🧱 Exporting STEP..."
kicad-cli pcb export step $PCB_FILENAME --no-optimize-step --output "output/${PROJECT_NAME}_${RELEASE_TAG}_3D.step" -D REVISION="${RELEASE_TAG}"
# Schematic PDF
echo "🖨️ Exporting Schematic PDF..."
kicad-cli sch export pdf $SCH_FILENAME --output "output/${PROJECT_NAME}_${RELEASE_TAG}_SCH.pdf" -D REVISION="${RELEASE_TAG}"
# Upload
echo "🚀 Uploading to AllSpice Release..."
export FILES_TO_UPLOAD="output/${PROJECT_NAME}_${RELEASE_TAG}_IBOM.html,output/${PROJECT_NAME}_${RELEASE_TAG}_GBR.zip,output/${PROJECT_NAME}_${RELEASE_TAG}_3D.step,output/${PROJECT_NAME}_${RELEASE_TAG}_SCH.pdf"
export RELEASE_TAG
python /app/allspice_upload.py
echo "✅ PCB Output Generation Complete!"