Basic Github Actions for the web deploy

This commit is contained in:
Vlastimil Slinták 2025-07-30 14:10:44 +02:00 committed by Wojciech Kaczmarski
parent 83a305c57d
commit 8cd713a8b3
3 changed files with 72 additions and 6 deletions

62
.github/workflows/main.yml vendored Normal file
View file

@ -0,0 +1,62 @@
name: CI
on:
push:
branches: [ main ]
jobs:
build-web:
runs-on: ubuntu-latest
container:
image: ghcr.io/slintak/kicad-builder:latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Build Everything
run: make
- name: Upload Fabrication Files
uses: actions/upload-artifact@v4
with:
name: build-fabrication
path: build/web/files/
if-no-files-found: error
- name: Upload Web Files
uses: actions/upload-artifact@v4
with:
name: build-web
path: build/web/
if-no-files-found: error
# Deploy job
deploy:
# Add a dependency to the build job
needs: [build-web]
# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
permissions:
pages: write # to deploy to Pages
id-token: write # to verify the deployment originates from an appropriate source
# Deploy to the github-pages environment
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
# Specify runner + deployment step
runs-on: ubuntu-latest
steps:
- name: Get Web Files
uses: actions/download-artifact@v4
with:
name: build-web
path: build/
- name: Upload Pages Artifact
uses: actions/upload-pages-artifact@v3
with:
path: build/
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

View file

@ -38,9 +38,12 @@ fabrication: $(BOARD).kicad_pcb $(BOARD).kicad_sch $(GERBER_ZIPS)
#
kicad-cli pcb export pos $< --side front --format csv --units mm -o $(TEMPLATE_FAB_DIR)/$(BOARD)_top_pos.csv
sed -e '1 s/Ref/Designator/' -e '1 s/PosX/Mid X/' -e '1 s/PosY/Mid Y/' -e '1 s/Rot/Rotation/' -e '1 s/Side/Layer/' $(TEMPLATE_FAB_DIR)/$(BOARD)_top_pos.csv > $(TEMPLATE_FAB_DIR)/$(BOARD)_pos_jlcpcb.csv
kicad-cli pcb export step --subst-models $< -o $(TEMPLATE_FAB_DIR)/$(BOARD)_model.step
xz -f $(TEMPLATE_FAB_DIR)/$(BOARD)_model.step
touch $(TEMPLATE_FAB_DIR)
kicad-cli pcb export step --subst-models $< -o $(TEMPLATE_FAB_DIR)/$(BOARD)_model.step ; \
rc=$$?; if [ $$rc -ne 0 ] && [ $$rc -ne 2 ]; then exit $$rc; fi
kicad-cli pcb export vrml $< -o $(TEMPLATE_FAB_DIR)/$(BOARD)_model.vrml
@xz -f $(TEMPLATE_FAB_DIR)/$(BOARD)_model.step
@xz -f $(TEMPLATE_FAB_DIR)/$(BOARD)_model.vrml
@touch $(TEMPLATE_FAB_DIR)
render: $(BOARD).kicad_pcb
@mkdir -p $(TEMPLATE_RENDER_DIR)
@ -61,10 +64,10 @@ build/%.html: %.md
build/%.html.j2: present/template/%.html.j2
@mkdir -p build
cp $< $@
@cp $< $@
build/%.json: present/template/%.json
cp $< $@
@cp $< $@
build/web/%.html: build/%.html.j2 build/%.json build/README.html
@mkdir -p build/web

View file

@ -11,7 +11,8 @@
{"file": "linht-hw_bom.xml", "description": "Bill of Materials (XML)"},
{"file": "linht-hw_schematic.pdf", "description": "Schematic (PDF)"},
{"file": "linht-hw_schematic_bw.pdf", "description": "Schematic without Colors (PDF)"},
{"file": "linht-hw_model.step.xz", "description": "3D Model (STEP.XZ)"}
{"file": "linht-hw_model.step.xz", "description": "3D Model (STEP.XZ)"},
{"file": "linht-hw_model.vrml.xz", "description": "3D Model (VRML.XZ)"}
],
"renders": [
{"suffix": "preview", "alt": "Isometric view of the PCB"},