diff --git a/.github/workflows/kibot.yml b/.github/workflows/kibot.yml new file mode 100644 index 0000000..c597280 --- /dev/null +++ b/.github/workflows/kibot.yml @@ -0,0 +1,45 @@ +name: kibot +on: [push] + +jobs: + erc: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + ssh-strict: false + fetch-depth: 2 + - uses: INTI-CMNB/KiBot@v2_k8 + with: + config: config_erc.kibot.yaml + dir: output + + drc: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + ssh-strict: false + fetch-depth: 2 + - uses: INTI-CMNB/KiBot@v2_k8 + with: + config: config_drc.kibot.yaml + dir: output + + generate_outputs: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + fetch-depth: 2 + - uses: INTI-CMNB/KiBot@v2_k8 + with: + config: config.kibot.yaml + dir: output + - uses: actions/upload-artifact@v3 + with: + name: output + path: output \ No newline at end of file diff --git a/config.kibot.yaml b/config.kibot.yaml new file mode 100644 index 0000000..b6bb49e --- /dev/null +++ b/config.kibot.yaml @@ -0,0 +1,450 @@ +# This is a working example. +# For a more complete reference use `--example` +kibot: + version: 1 + +global: + filters: + - number: 1007 + - number: 1015 + - number: 58 + +import: +- file: Elecrow + definitions: + _KIBOT_MANF_DIR: Manufacturers/Elecrow +- file: FusionPCB + definitions: + _KIBOT_MANF_DIR: Manufacturers/FusionPCB +- file: JLCPCB + definitions: + _KIBOT_MANF_DIR: Manufacturers/JLCPCB + _KIBOT_POS_PRE_TRANSFORM: '[''_kicost_rename'', ''_rot_footprint'']' + _KIBOT_BOM_ENABLED: 'false' +- file: MacroFab_XYRS +- file: PCBWay + definitions: + _KIBOT_MANF_DIR: Manufacturers/PCBWay + +preflight: + set_text_variables: + - name: GIT_HASH + command: "git rev-parse --short HEAD" + - name: PCB_REVISION + command: 'if [ $GITHUB_REF_TYPE = tag ]; then echo "$GITHUB_REF_NAME"; else echo "UNRELEASED"; fi' + +outputs: +- name: basic_boardview + comment: Board View export + type: boardview + dir: Assembly +- name: generic_bom_csv + comment: Generic Bill of Materials in CSV format + type: bom + dir: BoM/Generic + options: + format: CSV + columns: + - Row + - Description + - Part + - Part Lib + - References + - field: Value + join: + - voltage + - Footprint + - Footprint Lib + - Quantity Per PCB + - Build Quantity + - Status + - Datasheet + - Sheetpath + - Source BoM + - Reference + - Manufacturer + - ManufacturerPartNumber + - Supplier + - SupplierPartNumber + - Populate + - FieldName + - Voltage + - Precision + count_smd_tht: true +- name: positional_bom_html + comment: Positional Bill of Materials in HTML format + type: bom + dir: BoM/Positional + options: + format: HTML + columns: &id001 + - Row + - Description + - Part + - Part Lib + - References + - Value + - Footprint + - Footprint Lib + - Quantity Per PCB + - Build Quantity + - Status + - Datasheet + - Sheetpath + - Source BoM + - Footprint X + - Footprint Y + - Footprint Rot + - Footprint Side + - Footprint Type + - Footprint Populate + - Footprint X-Size + - Footprint Y-Size + count_smd_tht: true + html: + style: modern-red +- name: positional_bom_xlsx + comment: Positional Bill of Materials in XLSX format + type: bom + dir: BoM/Positional + options: + format: XLSX + columns: *id001 + count_smd_tht: true + xlsx: + style: modern-red +- name: costs_bom_xlsx + comment: Costs Bill of Materials in XLSX format + type: bom + dir: BoM/Costs + options: + format: XLSX + count_smd_tht: true + xlsx: + style: modern-green + kicost: true + specs: true + kicost_api_disable: KitSpace + pre_transform: _kicost_rename +# - name: basic_diff_pcb +# comment: PCB diff between the last two changes +# type: diff +# dir: diff +# layers: +# - layer: F.Cu +# suffix: F_Cu +# description: Front copper +# - layer: F.Paste +# suffix: F_Paste +# description: Front solder paste +# - layer: F.Silkscreen +# suffix: F_Silkscreen +# description: Front silkscreen (artwork) +# - layer: F.Mask +# suffix: F_Mask +# description: Front soldermask (negative) +# - layer: Edge.Cuts +# suffix: Edge_Cuts +# description: Board shape +# - layer: F.Courtyard +# suffix: F_Courtyard +# description: Front courtyard area +# - layer: F.Fab +# suffix: F_Fab +# description: Front documentation +# options: +# old: HEAD~ +# old_type: git +# new: HEAD +# new_type: git +# add_link_id: true +# - name: basic_diff_sch +# comment: Schematic diff between the last two changes +# type: diff +# dir: diff +# options: +# old: HEAD~ +# old_type: git +# new: HEAD +# new_type: git +# add_link_id: true +# pcb: false +- name: basic_download_datasheets + comment: Download the datasheets + type: download_datasheets + dir: Datasheets + +- name: basic_excellon + comment: Drill files in EXCELLON format + type: excellon + dir: Gerbers_and_Drill + options: + map: pdf +- name: basic_gerb_drill + comment: Drill files in GERB_DRILL format + type: gerb_drill + dir: Gerbers_and_Drill + options: + map: gerber +- name: gerber_modern + comment: Gerbers in modern format, recommended by the standard + type: gerber + dir: Gerbers_and_Drill + layers: + - layer: F.Cu + suffix: F_Cu + description: Front copper + - layer: In1.Cu + suffix: In1_Cu + description: Inner layer 1 copper + - layer: In2.Cu + suffix: In2_Cu + description: Inner layer 2 copper + - layer: B.Cu + suffix: B_Cu + description: Back copper + - layer: F.Paste + suffix: F_Paste + description: Front solder paste + - layer: B.Paste + suffix: B_Paste + description: Back solder paste + - layer: F.Silkscreen + suffix: F_Silkscreen + description: Front silkscreen (artwork) + - layer: B.Silkscreen + suffix: B_Silkscreen + description: Back silkscreen (artwork) + - layer: F.Mask + suffix: F_Mask + description: Front soldermask (negative) + - layer: B.Mask + suffix: B_Mask + description: Back soldermask (negative) + - layer: Edge.Cuts + suffix: Edge_Cuts + description: Board shape + - layer: F.Courtyard + suffix: F_Courtyard + description: Front courtyard area + - layer: B.Courtyard + suffix: B_Courtyard + description: Back courtyard area + - layer: F.Fab + suffix: F_Fab + description: Front documentation + - layer: B.Fab + suffix: B_Fab + description: Back documentation + +# - name: basic_ibom +# comment: Interactive HTML BoM +# type: ibom +# dir: Assembly + +- name: basic_info + comment: Information about the run + type: info + dir: . +- name: basic_kicanvas + comment: Web page to browse the schematic and/or PCB + type: kicanvas + dir: Browse + options: + source: + - schematic + - pcb +- name: renderer_for_present + comment: Renderer for the presentation + type: pcbdraw + dir: Render_for_presentation + run_by_default: false +- name: gerbers_for_present + comment: Gerbers for the presentation + type: gerber + dir: Gerber_for_presentation + layers: copper + run_by_default: false +# - name: basic_kiri +# comment: Interactive diff between commits +# type: kiri +# dir: diff +# layers: +# - layer: F.Cu +# suffix: F_Cu +# description: Front copper +# - layer: F.Paste +# suffix: F_Paste +# description: Front solder paste +# - layer: F.Silkscreen +# suffix: F_Silkscreen +# description: Front silkscreen (artwork) +# - layer: F.Mask +# suffix: F_Mask +# description: Front soldermask (negative) +# - layer: Edge.Cuts +# suffix: Edge_Cuts +# description: Board shape +# - layer: F.Courtyard +# suffix: F_Courtyard +# description: Front courtyard area +# - layer: F.Fab +# suffix: F_Fab +# description: Front documentation +# options: +# max_commits: 4 + +- name: basic_navigate_results + comment: Web page to browse the results + type: navigate_results + dir: Browse + options: + link_from_root: index.html + skip_not_run: true + +- name: ipc_netlist + comment: IPC-D-356 netlist for testing + type: netlist + dir: Export + options: + format: ipc + +- name: basic_pcb_print_pdf + comment: PCB + type: pcb_print + dir: PCB/PDF + options: + format: PDF + pages: + - layers: + - layer: F.Cu + - layer: F.Mask + color: '#14332440' + - layer: F.Paste + - layer: F.Silkscreen + - layer: Edge.Cuts + sheet: Front copper + - layers: + - layer: B.Cu + - layer: B.Mask + color: '#14332440' + - layer: B.Paste + - layer: B.Silkscreen + - layer: Edge.Cuts + sheet: Back copper + - layers: + - layer: F.Courtyard + - layer: Edge.Cuts + sheet: Front courtyard area + - layers: + - layer: B.Courtyard + - layer: Edge.Cuts + sheet: Back courtyard area + - layers: + - layer: F.Fab + - layer: Edge.Cuts + sheet: Front documentation + - layers: + - layer: B.Fab + - layer: Edge.Cuts + sheet: Back documentation + keep_temporal_files: true + +- name: render_2d_svg_top + type: pcbdraw + dir: PCB/2D_render/jlcpcb_green_enig + options: + style: jlcpcb-green-enig + format: svg +- name: render_2d_svg_bottom + type: pcbdraw + dir: PCB/2D_render/jlcpcb_green_enig + options: + style: jlcpcb-green-enig + format: svg + bottom: true +- name: render_2d_png_top + type: pcbdraw + dir: PCB/2D_render/jlcpcb_green_enig + options: + style: jlcpcb-green-enig + format: png + dpi: 1200 +- name: render_2d_png_bottom + type: pcbdraw + dir: PCB/2D_render/jlcpcb_green_enig + options: + style: jlcpcb-green-enig + format: png + dpi: 1200 + bottom: true + +- name: basic_pdf_sch_print + comment: Schematic in PDF format + type: pdf_sch_print + dir: Schematic + +- name: basic_position_ASCII + comment: Components position for Pick & Place + type: position + dir: Position + options: + format: ASCII + only_smd: false + separate_files_for_front_and_back: false +- name: basic_position_CSV + comment: Components position for Pick & Place + type: position + dir: Position + options: + format: CSV + only_smd: false + separate_files_for_front_and_back: false + +- name: basic_render_3d_top + comment: 3D view from top + type: render_3d + dir: 3D + options: + ray_tracing: true + orthographic: true +# - name: basic_render_3d_30deg +# comment: 3D view from 30 degrees +# type: render_3d +# dir: 3D +# output_id: 30deg +# options: +# ray_tracing: true +# rotate_x: 3 +# rotate_z: -2 + +- name: report_simple + comment: Simple design report + type: report + output_id: _simple + options: + template: simple_ASCII + do_convert: true +- name: report_full + comment: Full design report + type: report + options: + template: full_SVG + do_convert: true + +- name: basic_step + comment: 3D model in STEP format + type: step + dir: 3D + +... +definitions: + _KIBOT_MANF_DIR_COMP: Manufacturers + _KIBOT_GERBER_LAYERS: "- copper\n\ + \ - F.SilkS\n\ + \ - B.SilkS\n\ + \ - F.Mask\n\ + \ - B.Mask\n\ + \ - F.Paste\n\ + \ - B.Paste\n\ + \ - Edge.Cuts" diff --git a/config_drc.kibot.yaml b/config_drc.kibot.yaml new file mode 100644 index 0000000..c833b1d --- /dev/null +++ b/config_drc.kibot.yaml @@ -0,0 +1,5 @@ +kibot: + version: 1 + +preflight: + drc: true diff --git a/config_erc.kibot.yaml b/config_erc.kibot.yaml new file mode 100644 index 0000000..d90aefb --- /dev/null +++ b/config_erc.kibot.yaml @@ -0,0 +1,5 @@ +kibot: + version: 1 + +preflight: + erc: true