patch up CI

This commit is contained in:
2025-11-09 18:14:21 -08:00
parent fe1d1c14a4
commit 7f3289f359
8 changed files with 39 additions and 14 deletions

View File

@@ -4,15 +4,18 @@ on:
push:
branches:
- main
paths:
- hardware/**
pull_request:
branches:
- main
paths:
- hardware/**
env:
workflow_project_dir: hardware
kicad_project_name: lemon-pepper
jobs:
buildfiles:
name: Design check & documentation build

View File

@@ -32,13 +32,17 @@ jobs:
- name: Export assembly documentation
run: |
kicad-cli sch export bom -o ${workflow_project_dir}/outputs/raw-BOM.csv --fields "Reference,Value,Footprint,LCSC ID" --exclude-dnp --group-by "Val" --sort-asc ${workflow_project_dir}/${kicad_project_name}.kicad_sch
kicad-cli pcb export pos -o ${workflow_project_dir}/outputs/raw-CPL.csv --side front --format csv --use-drill-file-origin --exclude-dnp --units mm ${workflow_project_dir}/${kicad_project_name}.kicad_pcb
kicad-cli pcb export pos -o ${workflow_project_dir}/outputs/raw-CPL.csv --side both --format csv --use-drill-file-origin --exclude-dnp --units mm ${workflow_project_dir}/${kicad_project_name}.kicad_pcb
kicad-cli pcb export pos -o ${workflow_project_dir}/outputs/raw-CPL-top.csv --side front --format csv --use-drill-file-origin --exclude-dnp --units mm ${workflow_project_dir}/${kicad_project_name}.kicad_pcb
kicad-cli pcb export pos -o ${workflow_project_dir}/outputs/raw-CPL-bot.csv --side back --format csv --use-drill-file-origin --exclude-dnp --units mm ${workflow_project_dir}/${kicad_project_name}.kicad_pcb
- name: Convert BOM & CPL to JLC format
run: |
python3 scripts/jlc_bom_formatter.py ${workflow_project_dir}/outputs/raw-BOM.csv ${workflow_project_dir}/outputs/${kicad_project_name}-BOM.csv
python3 scripts/jlc_cpl_formatter.py ${workflow_project_dir}/outputs/raw-CPL.csv ${workflow_project_dir}/outputs/${kicad_project_name}-CPL.csv
sudo rm ${workflow_project_dir}/outputs/raw-BOM.csv ${workflow_project_dir}/outputs/raw-CPL.csv
python3 scripts/jlc_cpl_formatter.py ${workflow_project_dir}/outputs/raw-CPL-top.csv ${workflow_project_dir}/outputs/${kicad_project_name}-CPL-top.csv
python3 scripts/jlc_cpl_formatter.py ${workflow_project_dir}/outputs/raw-CPL-bot.csv ${workflow_project_dir}/outputs/${kicad_project_name}-CPL-bot.csv
sudo rm ${workflow_project_dir}/outputs/raw-BOM.csv ${workflow_project_dir}/outputs/raw-CPL.csv ${workflow_project_dir}/outputs/raw-CPL-top.csv ${workflow_project_dir}/outputs/raw-CPL-bot.csv
- name: Export mechanical files
run: |

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -4,7 +4,7 @@ set -v
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
sudo add-apt-repository --yes ppa:kicad/kicad-8.0-releases
sudo add-apt-repository --yes ppa:kicad/kicad-9.0-releases
sudo apt-get update -qq
sudo DEBIAN_FRONTEND=noninteractive apt install --install-recommends kicad kicad-packages3d- kicad-demos-
sudo DEBIAN_FRONTEND=noninteractive apt install python3 pip

View File

@@ -10,6 +10,9 @@ def footprintFix(fpName):
return propertiesList[1][-1] + propertiesList[2]
# Strip out library name from FP.
if isinstance(fpName, float):
print("Malformed BOM, check you are not missing footprint assignments.")
else:
return fpName.split(":")[-1]
bom_file = pd.read_csv(sys.argv[1])

View File

@@ -1,11 +1,26 @@
import pandas as pd
import os, sys, csv
cpl_file = pd.read_csv(sys.argv[1])
def reduce_layer(layername):
if 'top' in layername:
return 'T'
elif 'bottom' in layername:
return 'B'
else:
return ''
cpl_file.columns = ['Designator', 'Val', 'Package', 'Mid X', 'Mid Y', 'Rotation', 'Layer']
cpl_file = cpl_file.reindex(columns=['Designator', 'Mid X', 'Mid Y', 'Layer', 'Rotation'])
cpl_file.drop([0,1,2,3,4,5])
cpl_file['Layer'] = "T"
if __name__ == "__main__":
cpl_file = pd.read_csv(sys.argv[1])
cpl_file.to_csv(sys.argv[2], index=False)
# Remove header rows from table
cpl_file.drop([0,1,2,3,4,5])
# Assign names and sort rows to match JLC format
cpl_file.columns = ['Designator', 'Val', 'Package', 'Mid X', 'Mid Y', 'Rotation', 'Layer']
cpl_file = cpl_file.reindex(columns=['Designator', 'Mid X', 'Mid Y', 'Layer', 'Rotation'])
# Change top/bottom to T/B
cpl_file['Layer'] = cpl_file['Layer'].apply(reduce_layer)
# Write file to disk
cpl_file.to_csv(sys.argv[2], index=False)