Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .github/kibot-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
kibot:
version: 1
global:
out_dir: output
preflight:
check_zone_fills: true
erc: true
drc: true
outputs:
- name: Info
type: info

- name: Report
type: report
33 changes: 33 additions & 0 deletions .github/kibot-diff.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
kibot:
version: 1
global:
out_dir: output
preflight:
check_zone_fills: true
erc: false
drc: false

outputs:
- name: Info
type: info

- name: 'print_sch'
type: pdf_sch_print
dir: sch

- name: Diff Schematic
type: diff
dir: sch
options:
only_different: true
old: xxBASE
pcb: false

- name: Diff Layout
type: diff
dir: pcb
options:
only_different: true
old: xxBASE
pcb: true
dpi: 400
75 changes: 75 additions & 0 deletions .github/kibot-fab.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
kibot:
version: 1
global:
out_dir: output
preflight:
check_zone_fills: true
erc: false
drc: false
outputs:
- name: Info
type: info

- name: Report
type: report
- name: BoM
type: bom
options:
format: 'CSV'
csv:
quote_all: true
hide_pcb_info: true
hide_stats_info: true
columns:
- Row
- Quantity Per PCB
- References
- Manufacturer Part Number
- Manufacturer
- Value
- Footprint
- Description
group_fields: ['MPN']
parse_value: false
normalize_values: false
# include test points, which are actual components
exclude_filter: ''
Comment on lines +23 to +36
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently the generated BoM uses the kibot code, and will be garbage until the inconsistent symbol field names are sorted out. Ideally by picking one of MANUFACTURER_PART_NUMBER vs. Manufacturer Part Number vs. Manufacturer1 Part Number.

Copy link
Copy Markdown
Author

@mdavidsaver mdavidsaver Apr 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With kicad 9, the internal jobset batch tool provides an alternative to many (all?) of the previously kibot-only output.

https://docs.kicad.org/9.0/en/kicad/kicad.html#jobsets


- name: 'print_sch'
type: pdf_sch_print

- name: 'gerbers'
type: gerber
dir: gerber
options:
exclude_edge_layer: false
plot_sheet_reference: true
layers:
- 'copper'
- 'technical'
- 'user'

- name: 'd356'
type: netlist
dir: gerber
options:
format: "ipc"

- name: drill
type: excellon
dir: gerber

- name: position
type: position
dir: gerber

- name: STEP
type: export_3d
dir: 3D
options:
format: "step"

- name: navigate
type: navigate_results
options:
link_from_root: "index.html"
92 changes: 92 additions & 0 deletions .github/workflows/kibot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: KiBot

on: [push, pull_request, workflow_dispatch]

jobs:
check:
name: "ERC/DRC"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: INTI-CMNB/KiBot@v2_k9
with:
dir: output
config: .github/kibot-check.yaml

fab:
name: Fab Outputs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: INTI-CMNB/KiBot@v2_k9
with:
dir: output
config: .github/kibot-fab.yml
schema: Obsidian/Obsidian.kicad_sch
board: Obsidian/Obsidian.kicad_pcb
verbose: 1
- name: Fab output
id: fab
uses: actions/upload-artifact@v6
with:
name: Fab
compression-level: 9
if-no-files-found: 'error'
path: |
output/*report.txt
output/*.csv
output/gerber/*
- name: Upload gh-pages preview
id: ghpages
uses: actions/upload-pages-artifact@v4
with:
retention-days: 7
path: output/

diffpr:
name: Pull Request Difference
runs-on: ubuntu-latest
if: ${{ github.base_ref }}
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Tag PR base
run: |
git tag xxBASE ${{ github.event.pull_request.base.sha }}
git log -n1 xxBASE
- uses: INTI-CMNB/KiBot@v2_dk9
with:
dir: diff
config: .github/kibot-diff.yml
schema: Obsidian/Obsidian.kicad_sch
board: Obsidian/Obsidian.kicad_pcb
verbose: 3
- name: Upload Diff
id: diff
uses: actions/upload-artifact@v6
with:
name: pr-diff
compression-level: 9
if-no-files-found: 'error'
path: diff

publish:
runs-on: ubuntu-latest

if: github.ref=='refs/heads/main'
needs: fab

permissions:
contents: read
pages: write
id-token: write

environment:
name: github-pages
url: ${{ steps.ghpages.outputs.page_url }}

steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v5
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
*-bak
*-backups
*.lck
Obsidian/Fabrication/
*.kicad_prl
fp-info-cache
*/Fabrication/
147 changes: 0 additions & 147 deletions Obsidian/Obsidian.kicad_prl

This file was deleted.

4 changes: 2 additions & 2 deletions Obsidian/Obsidian.kicad_pro
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@
"footprint_type_mismatch": "ignore",
"hole_clearance": "ignore",
"hole_near_hole": "error",
"hole_to_hole": "warning",
"hole_to_hole": "error",
"holes_co_located": "warning",
"invalid_outline": "error",
"isolated_copper": "warning",
Expand Down Expand Up @@ -2050,7 +2050,7 @@
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_show": true,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.375,
Expand Down
Loading