FIX: variant handling, kintree cli syntax, and PCB image handling

This commit is contained in:
andrewc
2025-07-29 12:05:52 +10:00
parent 82611b2951
commit c3aa9c6b28
8 changed files with 68 additions and 30 deletions

View File

@@ -42,14 +42,14 @@ outputs:
type: pdf_sch_print type: pdf_sch_print
dir: . dir: .
options: options:
output: "%f%v_%r_%i.%x" output: "%f_%r%v_%i.%x"
- name: 'print_pcb' - name: 'print_pcb'
comment: "Print Top and Bottom Copper+Silk" comment: "Print Top and Bottom Copper+Silk"
type: pcb_print type: pcb_print
dir: . dir: .
options: options:
output: "%f%v_%r_PCB.%x" output: "%f_%r%v_PCB.%x"
pages: pages:
- layers: - layers:
- layer: F.Cu - layer: F.Cu
@@ -81,15 +81,32 @@ outputs:
- field: References - field: References
name: refs name: refs
exclude_filter: "" exclude_filter: ""
output: "%f%v_%r_%i.%x" output: "%f_%r%v_%i.%x"
expand_text_vars: true expand_text_vars: true
- name: 'bom_csv' - name: 'bom_csv'
type: bom type: bom
dir: . dir: .
extends: "_bom"
disable_run_by_default: _bom
options: options:
columns:
- field: Value
name: value
- field: Quantity Per PCB
name: qty
- field: Footprint
name: footprint
- field: Datasheet
name: datasheet
- mpn
- manf
- rev
- conn_manf
- conn_mpn
- field: References
name: refs
exclude_filter: ""
output: "%f_%r%v_%i.%x"
expand_text_vars: true
csv: csv:
separator: ';' separator: ';'
hide_pcb_info: true hide_pcb_info: true
@@ -99,9 +116,26 @@ outputs:
- name: 'bom_xlsx' - name: 'bom_xlsx'
type: bom type: bom
dir: . dir: .
extends: '_bom'
disable_run_by_default: _bom
options: options:
columns:
- field: Value
name: value
- field: Quantity Per PCB
name: qty
- field: Footprint
name: footprint
- field: Datasheet
name: datasheet
- mpn
- manf
- rev
- conn_manf
- conn_mpn
- field: References
name: refs
exclude_filter: ""
output: "%f_%r%v_%i.%x"
expand_text_vars: true
xlsx: xlsx:
hide_pcb_info: true hide_pcb_info: true
hide_stats_info: true hide_stats_info: true
@@ -118,7 +152,7 @@ outputs:
type: step type: step
dir: . dir: .
options: options:
output: '%f%v_%r.%x' output: '%f_%r%v.%x'
download: false download: false
subst_models: true subst_models: true
@@ -134,7 +168,7 @@ outputs:
download: false download: false
download_lcsc: false download_lcsc: false
orthographic: true orthographic: true
output: 'PCB_%f%v_%r.%x' output: 'PCB_%f_%r%v.%x'
show_components: 'none' show_components: 'none'
- name: 'pcba_render' - name: 'pcba_render'
@@ -149,14 +183,14 @@ outputs:
zoom: -1 zoom: -1
download_lcsc: false download_lcsc: false
orthographic: true orthographic: true
output: 'PCBA_%f%v_%r.%x' output: 'PCBA_%f_%r%v.%x'
show_components: 'all' show_components: 'all'
- name: 'neo_position' - name: 'neo_position'
comment: "Pick and place" comment: "Pick and place"
type: position type: position
options: options:
output: '%f%v_%r_cpl.%x' output: '%f_%r%v_cpl.%x'
format: CSV format: CSV
units: millimeters units: millimeters
separate_files_for_front_and_back: false separate_files_for_front_and_back: false
@@ -167,7 +201,7 @@ outputs:
type: stencil_3d type: stencil_3d
dir: '3D_Stencil' dir: '3D_Stencil'
options: options:
output: '%f%v_%r_%i.%x' output: '%f_%r%v_%i.%x'
- name: 'diff_pcb' - name: 'diff_pcb'
comment: "Diff for visual comparison" comment: "Diff for visual comparison"
@@ -191,7 +225,7 @@ outputs:
type: ibom type: ibom
dir: . dir: .
options: options:
output: '%f%v_%r_%i.%x' output: '%f_%r%v_%i.%x'
dark_mode: true dark_mode: true
- name: 'JLCPCB_gerbers' - name: 'JLCPCB_gerbers'
@@ -244,7 +278,7 @@ outputs:
metric_units: true metric_units: true
map: gerber map: gerber
route_mode_for_oval_holes: false route_mode_for_oval_holes: false
output: "%f%v_%r_%i.%x" output: "%f_%r%v_%i.%x"
- name: 'JLCPCB_compress' - name: 'JLCPCB_compress'
comment: ZIP file for JLCPCB comment: ZIP file for JLCPCB
@@ -255,7 +289,7 @@ outputs:
dest: / dest: /
- from_output: JLCPCB_drill - from_output: JLCPCB_drill
dest: / dest: /
output: '%f%v_%r_JLC.%x' output: '%f_%r%v_JLC.%x'
groups: groups:
- name: mech - name: mech
outputs: outputs:
@@ -272,7 +306,6 @@ groups:
- name: pcb_main - name: pcb_main
outputs: outputs:
- JLCPCB_compress - JLCPCB_compress
- neo_position
- print_pcb - print_pcb
- stencil - stencil
- interactive_bom - interactive_bom
@@ -280,7 +313,6 @@ groups:
- name: panel - name: panel
outputs: outputs:
- JLCPCB_compress - JLCPCB_compress
- neo_position
- print_pcb - print_pcb
- step - step
- interactive_bom - interactive_bom

View File

@@ -4,6 +4,7 @@ kibot:
import: import:
- file: default.kibot.yaml - file: default.kibot.yaml
outputs: ['step', 'pcb_render', 'pcba_render']
preflight: preflight:
erc: false erc: false

View File

@@ -4,6 +4,7 @@ kibot:
import: import:
- file: default.kibot.yaml - file: default.kibot.yaml
outputs: [JLCPCB_compress, neo_position, print_pcb, step, interactive_bom]
preflight: preflight:
erc: false erc: false

View File

@@ -4,6 +4,7 @@ kibot:
import: import:
- file: default.kibot.yaml - file: default.kibot.yaml
outputs: [print_pcb]
preflight: preflight:
erc: false erc: false

View File

@@ -4,6 +4,7 @@ kibot:
import: import:
- file: default.kibot.yaml - file: default.kibot.yaml
outputs: [JLCPCB_gerbers, JLCPCB_drill, JLCPCB_compress, print_pcb, stencil]
preflight: preflight:
erc: false erc: false

View File

@@ -4,8 +4,9 @@ kibot:
import: import:
- file: default.kibot.yaml - file: default.kibot.yaml
outputs: ['neo_position']
preflight: preflight:
erc: false erc: false
update_xml: false update_xml: false
drc: true drc: false

View File

@@ -3,6 +3,7 @@ kibot:
import: import:
- file: default.kibot.yaml - file: default.kibot.yaml
outputs: ['bom_csv','bom_xlsx', 'print_sch', 'interactive_bom']
preflight: preflight:
erc: true erc: true

View File

@@ -90,7 +90,7 @@ image:
python3 $CI_PROJECT_DIR/.gitlab/.scripts/orig.py ${dir_arr[i-1]} python3 $CI_PROJECT_DIR/.gitlab/.scripts/orig.py ${dir_arr[i-1]}
for CONF in $KIBOT_CONF for CONF in $KIBOT_CONF
do do
kibot -e ${dir_arr[i-1]}/${sch_arr[i-1]} -c $CI_PROJECT_DIR/.gitlab/configs/$CONF.kibot.yaml -d $CI_PROJECT_DIR/Fabrication/${dir_arr[i-1]} $VARIANTS $CONF kibot -e ${dir_arr[i-1]}/${sch_arr[i-1]} -c $CI_PROJECT_DIR/.gitlab/configs/$CONF.kibot.yaml -d $CI_PROJECT_DIR/Fabrication/${dir_arr[i-1]} $VARIANTS
done done
mv $CI_PROJECT_DIR/Fabrication/${dir_arr[i-1]}/*.zip Fabrication/ 2> /dev/null || true mv $CI_PROJECT_DIR/Fabrication/${dir_arr[i-1]}/*.zip Fabrication/ 2> /dev/null || true
done done
@@ -157,24 +157,24 @@ image:
for f in $FILES for f in $FILES
do do
echo $f echo $f
name=$(echo $f | cut -c3- | cut -d'-' -f1)A
rev=$(echo $f | cut -c3- | cut -d'-' -f1)A
fab_path=$CI_PROJECT_DIR/Fabrication/$(dirname $f | cut -c3-) fab_path=$CI_PROJECT_DIR/Fabrication/$(dirname $f | cut -c3-)
name_n_rev=$(echo $f | cut -c3- | rev | cut -d'/' -f1 | cut -c9- | rev) full_name=$(echo $f | cut -c3- | rev | cut -d'/' -f1 | cut -c9- | rev)
echo "name: $name_n_rev" echo "name: $full_name"
assembly_rev=$(echo $name_n_rev | cut -d'_' -f2) name_n_rev=$(echo $full_name | cut -d'_' -f1,2)
pcb_rev=$(echo $assembly_rev | cut -d'_' -f1,2 | cut -d'.' -f1,2) assembly_rev=$(echo $full_name | cut -d'_' -f2)
pcb_im=$fab_path/PCB_$name_n_rev.png name=$(echo $full_name | cut -d'-' -f1)A$(echo ${full_name//$assembly_rev/.} | cut -d'.' -f2)
pcba_im=$fab_path/PCBA_$name_n_rev.png pcb_rev=$(echo ${assembly_rev} | cut -d'_' -f1,2 | cut -d'.' -f1,2)
pcb_attach=$(echo "['$fab_path/${name_n_rev}_PCB.pdf', '$CI_PROJECT_DIR/Fabrication/${name_n_rev}_JLC.zip']") pcb_im=${fab_path}/PCB_${name_n_rev}.png
pcba_attach=$(echo "['$fab_path/${name_n_rev}_schematic.pdf', '$fab_path/${name_n_rev}_bom.csv', '$fab_path/${name_n_rev}-neo-pos_top.csv', '$fab_path/${name_n_rev}-neo-pos_bot.csv', '$fab_path/${name_n_rev}_ibom.html']") pcba_im=${fab_path}/PCBA_${name_n_rev}.png
pcb_attach=$(echo "['${fab_path}/${name_n_rev}_PCB.pdf', '$CI_PROJECT_DIR/Fabrication/${name_n_rev}_JLC.zip']")
pcba_attach=$(echo "['${fab_path}/${full_name}_schematic.pdf', '${fab_path}/${full_name}_bom.csv', '${fab_path}/${full_name}-neo-pos_top.csv', '${fab_path}/${full_name}-neo-pos_bot.csv', '${fab_path}/${full_name}_ibom.html']")
DRY="--dry assemblies" DRY="--dry assemblies"
if [[ $CI_COMMIT_BRANCH == "main" ]]; then if [[ $CI_COMMIT_BRANCH == "main" ]]; then
DRY="" DRY=""
fi fi
echo "Revs: $pcb_rev, $assembly_rev" echo "Revs: $pcb_rev, $assembly_rev"
python -m kintree.kintree_cli $DRY -p $CI_PROJECT_DIR/Fabrication/$f --assembly "{'ipn': '$name', 'rev': ['$pcb_rev', '$assembly_rev'], 'image': ['$pcb_im', '$pcba_im'], 'desc': '$desc_suffix', 'attachments': [$pcb_attach, $pcba_attach]}" --settings $KINTREE_SETT --digi_token token_storage.json || FAIL=1 python -m kintree.kintree_cli $DRY -b $CI_PROJECT_DIR/Fabrication/$f -a "{'ipn': '$name', 'rev': ['$pcb_rev', '$assembly_rev'], 'image': ['$pcb_im', '$pcba_im'], 'desc': '$desc_suffix', 'attachments': [$pcb_attach, $pcba_attach]}" --settings $KINTREE_SETT --digi_token token_storage.json || FAIL=1
done done
# - cp token_storage.json /tmp # - cp token_storage.json /tmp
- | - |