patch up CI
This commit is contained in:
7
.github/workflows/design.yml
vendored
7
.github/workflows/design.yml
vendored
@@ -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
|
||||
@@ -43,4 +46,4 @@ jobs:
|
||||
if: always()
|
||||
with:
|
||||
name: design-artifacts
|
||||
path: hardware/outputs
|
||||
path: hardware/outputs
|
||||
10
.github/workflows/documentation.yml
vendored
10
.github/workflows/documentation.yml
vendored
@@ -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: |
|
||||
@@ -63,4 +67,4 @@ jobs:
|
||||
if: always()
|
||||
with:
|
||||
name: documentation-artifacts
|
||||
path: hardware/outputs
|
||||
path: hardware/outputs
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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
|
||||
|
||||
@@ -10,11 +10,14 @@ def footprintFix(fpName):
|
||||
return propertiesList[1][-1] + propertiesList[2]
|
||||
|
||||
# Strip out library name from FP.
|
||||
return fpName.split(":")[-1]
|
||||
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])
|
||||
|
||||
bom_file.columns = ['Designator', 'Value', 'Footprint', 'JLCPCB Part #']
|
||||
bom_file['Footprint'] = bom_file['Footprint'].apply(lambda x: footprintFix(x))
|
||||
|
||||
bom_file.to_csv(sys.argv[2], index=False)
|
||||
bom_file.to_csv(sys.argv[2], index=False)
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user