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
30 changes: 26 additions & 4 deletions .github/workflows/docs-pipeline.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,19 @@
# Copy to .github/workflows/docs-pipeline.yml in a board repo.
#
# The `pull_request` trigger is the important part. The fleet previously ran ERC
# and DRC only on `push: main` -- so hardware checks ran *after* a change had
# already merged. They could report that main was broken; they could never stop
# it from breaking. A gate that only fires post-merge is a notification, not a gate.

name: Docs Pipeline

on:
pull_request:
paths:
- "hardware/**"
- "docs/**"
- "scripts/**"
- ".github/workflows/**"
push:
branches: [main]
paths:
Expand All @@ -11,18 +24,27 @@ on:
workflow_dispatch:

jobs:
# Fails if the board is not aligned with BREADS: KiCad 10 file format, a real
# (error-severity) schematic-parity gate, every library reference resolving,
# and un-swapped Makefile targets. Green here means the board is done.
validate-board:
uses: feastorg/bread-infra/.github/workflows/validate-board.yml@v1.2.0

kibot:
uses: feastorg/bread-infra/.github/workflows/kibot-ci.yml@main
uses: feastorg/bread-infra/.github/workflows/kibot-ci.yml@v1.2.0

# Publishing only makes sense for the canonical branch.
gen-kibot-index:
uses: feastorg/bread-infra/.github/workflows/publish-kibot.yml@main
if: github.event_name != 'pull_request'
uses: feastorg/bread-infra/.github/workflows/publish-kibot.yml@v1.2.0
needs: [kibot]
with:
kibot_run_id: ${{ needs.kibot.outputs.kibot_run_id }}

deploy-pages:
uses: feastorg/bread-infra/.github/workflows/deploy-pages.yml@main
needs: [gen-kibot-index]
if: github.event_name != 'pull_request'
uses: feastorg/bread-infra/.github/workflows/deploy-pages.yml@v1.2.0
needs: [gen-kibot-index, kibot]
with:
kibot_run_id: ${{ needs.kibot.outputs.kibot_run_id }}
commit_sha: ${{ needs.gen-kibot-index.outputs.kibot_index_sha }}
18 changes: 17 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,12 @@
fp-info-cache
sym-lib-table
fp-lib-table
# KiCad 10 adds design blocks; like the other lib tables it holds absolute
# paths, so it is machine-local and generated, never committed.
design-block-lib-table

# KiCad's project lock file, written while a project is open (~<prj>.kicad_pro.lck)
*.lck

# Ignore other temporary files
*.tmp
Expand All @@ -21,4 +27,14 @@ fp-lib-table
*.swp

*-backups/
working/
working/

# KiCad 10 local history: a nested git repo (git_repository_init on
# <project>/.history). The .gitignore KiCad writes inside it governs
# KiCad's history repo, not this one. Committing it adds a broken gitlink.
.history/

# KiCad rewrites .kicad_prl on every project open (open sheet, zoom, selection
# filter). Per-developer local state, not design intent -- tracking it dirties
# the working tree every time anyone opens the board.
*.kicad_prl
1 change: 0 additions & 1 deletion hardware/.history
Submodule .history deleted from c6426c
136 changes: 0 additions & 136 deletions hardware/BREAD_Slice.kicad_prl

This file was deleted.

2 changes: 1 addition & 1 deletion hardware/BREAD_Slice.kicad_pro
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@
"footprint": "error",
"footprint_filters_mismatch": "ignore",
"footprint_symbol_field_mismatch": "warning",
"footprint_symbol_mismatch": "warning",
"footprint_symbol_mismatch": "error",
"footprint_type_mismatch": "error",
"hole_clearance": "error",
"hole_near_hole": "error",
Expand Down
4 changes: 2 additions & 2 deletions hardware/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ PRJ_PCB=BREAD_Slice.kicad_pcb
.PHONY: erc drc sch_fab pcb_fab erc_and_fab drc_and_fab

erc:
$(KIBOT) $(EXTRA_OPS) -e $(PRJ_SCH) -b $(PRJ_PCB) -d $(OUT_DIR) -s erc -i
$(KIBOT) $(EXTRA_OPS) -e $(PRJ_SCH) -b $(PRJ_PCB) -d $(OUT_DIR) -s drc -i

drc:
$(KIBOT) $(EXTRA_OPS) -e $(PRJ_SCH) -b $(PRJ_PCB) -d $(OUT_DIR) -s drc -i
$(KIBOT) $(EXTRA_OPS) -e $(PRJ_SCH) -b $(PRJ_PCB) -d $(OUT_DIR) -s erc -i

sch_fab:
$(KIBOT) $(EXTRA_OPS) -e $(PRJ_SCH) -b $(PRJ_PCB) -d $(OUT_DIR) \
Expand Down
15 changes: 3 additions & 12 deletions hardware/config.kibot.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -70,15 +70,13 @@ outputs:
dir: BoM
options:
format: CSV
# Here we avoid repetition using the bom_cols anchor defined for the HTML output
columns: *bom_cols

- name: "gerbers"
comment: "Gerbers for the board house"
type: gerber
dir: Gerbers
options:
# generic layer options
exclude_edge_layer: true
exclude_pads_from_silkscreen: false
use_aux_axis_as_origin: false
Expand All @@ -87,23 +85,16 @@ outputs:
plot_footprint_values: true
force_plot_invisible_refs_vals: false
tent_vias: true

# gerber options
line_width: 0.1
subtract_mask_from_silk: false
use_protel_extensions: false
gerber_precision: 4.6
create_gerber_job_file: true
use_gerber_x2_attributes: true
use_gerber_net_attributes: true

layers:
- layer: F.Cu
suffix: F_Cu
# - layer: In1.Cu
# suffix: In1_Cu
# - layer: In2.Cu
# suffix: In2_Cu
- layer: B.Cu
suffix: B_Cu
- layer: F.Paste
Expand Down Expand Up @@ -154,8 +145,8 @@ outputs:
type: position
dir: Position
options:
format: ASCII # CSV or ASCII format
units: millimeters # millimeters or inches
format: ASCII
units: millimeters
separate_files_for_front_and_back: true
only_smd: true

Expand All @@ -175,4 +166,4 @@ outputs:
dpi: 300
bottom: true
mirror: true
output: "board_bottom.png"
output: "board_bottom.png"
Loading
Loading