FIX: variant handling, kintree cli syntax, and PCB image handling
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ kibot:
|
|||||||
|
|
||||||
import:
|
import:
|
||||||
- file: default.kibot.yaml
|
- file: default.kibot.yaml
|
||||||
|
outputs: [print_pcb]
|
||||||
|
|
||||||
preflight:
|
preflight:
|
||||||
erc: false
|
erc: false
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
24
kibot-ci.yml
24
kibot-ci.yml
@@ -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
|
||||||
- |
|
- |
|
||||||
|
|||||||
Reference in New Issue
Block a user