Skip to content
Merged
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 @@
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:

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {}
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:

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {}
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:

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {}
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 }}

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {}
15 changes: 14 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 @@ -24,5 +30,12 @@ fp-lib-table

working/

# Ignore VS Code Local History
# 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
7 changes: 5 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,11 @@ This project did not use formal release tags through most of its history, so thi
gitlink (mode `160000`) with no `.gitmodules` entry, so `actions/checkout`
failed with `fatal: No url found for submodule path 'hardware/.history'`
and all three KiBot jobs — Fab, ERC and DRC — died before running, taking
the index and Pages deploy with them. The directory is VS Code Local
History state and is empty on disk.
the index and Pages deploy with them. The directory is KiCad 10's own
Local History: KiCad runs `git_repository_init` on `<project>/.history`,
so committing it records a gitlink to a repository this one knows nothing
about. It is recreated on every project open, on every machine, which is
why the ignore rule matters rather than a one-time cleanup.

- **Corrected the G1 pin map in `docs/hardware-revisions.md`.** D8 and D12
were listed as unused; G1 routes `/THRM2` to D8 and `/THRM1` to D12, on
Expand Down
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 @@ -107,7 +107,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