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:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
|
paths:
|
||||||
|
- hardware/**
|
||||||
|
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
|
paths:
|
||||||
|
- hardware/**
|
||||||
|
|
||||||
env:
|
env:
|
||||||
workflow_project_dir: hardware
|
workflow_project_dir: hardware
|
||||||
kicad_project_name: lemon-pepper
|
kicad_project_name: lemon-pepper
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
buildfiles:
|
buildfiles:
|
||||||
name: Design check & documentation build
|
name: Design check & documentation build
|
||||||
@@ -43,4 +46,4 @@ jobs:
|
|||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: design-artifacts
|
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
|
- name: Export assembly documentation
|
||||||
run: |
|
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 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
|
- name: Convert BOM & CPL to JLC format
|
||||||
run: |
|
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_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
|
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
|
- name: Export mechanical files
|
||||||
run: |
|
run: |
|
||||||
@@ -63,4 +67,4 @@ jobs:
|
|||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
name: documentation-artifacts
|
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 )"
|
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 apt-get update -qq
|
||||||
sudo DEBIAN_FRONTEND=noninteractive apt install --install-recommends kicad kicad-packages3d- kicad-demos-
|
sudo DEBIAN_FRONTEND=noninteractive apt install --install-recommends kicad kicad-packages3d- kicad-demos-
|
||||||
sudo DEBIAN_FRONTEND=noninteractive apt install python3 pip
|
sudo DEBIAN_FRONTEND=noninteractive apt install python3 pip
|
||||||
|
|||||||
@@ -10,11 +10,14 @@ def footprintFix(fpName):
|
|||||||
return propertiesList[1][-1] + propertiesList[2]
|
return propertiesList[1][-1] + propertiesList[2]
|
||||||
|
|
||||||
# Strip out library name from FP.
|
# 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 = pd.read_csv(sys.argv[1])
|
||||||
|
|
||||||
bom_file.columns = ['Designator', 'Value', 'Footprint', 'JLCPCB Part #']
|
bom_file.columns = ['Designator', 'Value', 'Footprint', 'JLCPCB Part #']
|
||||||
bom_file['Footprint'] = bom_file['Footprint'].apply(lambda x: footprintFix(x))
|
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 pandas as pd
|
||||||
import os, sys, csv
|
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']
|
if __name__ == "__main__":
|
||||||
cpl_file = cpl_file.reindex(columns=['Designator', 'Mid X', 'Mid Y', 'Layer', 'Rotation'])
|
cpl_file = pd.read_csv(sys.argv[1])
|
||||||
cpl_file.drop([0,1,2,3,4,5])
|
|
||||||
cpl_file['Layer'] = "T"
|
|
||||||
|
|
||||||
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