Merge pull request #3 from atopile/add_ci

remove gitlab ci and add github ci
This commit is contained in:
Timot05 2024-01-05 21:21:08 -08:00 committed by GitHub
commit 5f098a1f0d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 86 additions and 51 deletions

86
.github/workflows/ci.yml vendored Normal file
View file

@ -0,0 +1,86 @@
name: CI Pipeline
on: [push, pull_request]
jobs:
build-gerbers-default:
runs-on: ubuntu-latest
container:
image: kicad/kicad:7.0
options: --user root
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Build Gerbers
run: |
mkdir -p build/default/src
cd build/default
cp ../../elec/layout/default/*.kicad_pcb src/
sed -i "s/'{{GITHASH}}'/${GITHUB_SHA:0:7}/g" src/*.kicad_pcb
mkdir gerbers
kicad-cli pcb export gerbers -o gerbers/ src/*.kicad_pcb
kicad-cli pcb export drill -o gerbers/ src/*.kicad_pcb
zip "gerbers-${GITHUB_SHA:0:7}.zip" gerbers/*
# Position files for JLCPCB
kicad-cli pcb export pos --format csv --units mm --use-drill-file-origin -o ${GITHUB_SHA:0:7}-pos.csv src/*.kicad_pcb
POS_HEADER="$(cat ../../metadata/pos-header)"
sed -i "1s/.*/$POS_HEADER/" ${GITHUB_SHA:0:7}-pos.csv
# Export step file
kicad-cli pcb export step --subst-models -o board_3d_shape.step src/*.kicad_pcb
shell: bash
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: build
path: build/
build-ato-default:
runs-on: ubuntu-latest
container:
image: registry.atopile.io/atopile/atopile/ci:latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
submodules: recursive
- name: Build Ato
run: |
ato install
ato build
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: build
path: build/
store-build:
name: Store Build
needs: [build-ato-default, build-gerbers-default]
runs-on: ubuntu-latest
steps:
- name: Download Artifacts
uses: actions/download-artifact@v3
with:
path: downloads
- name: Combine Artifacts
run: |
mkdir store-build
cp -r downloads/* store-build/
- name: Upload Combined Artifacts
uses: actions/upload-artifact@v3
with:
name: store-build
path: store-build/

View file

@ -1,51 +0,0 @@
stages:
- build
- store
variables:
GIT_SUBMODULE_STRATEGY: recursive
build-gerbers-default:
stage: build
image:
name: kicad/kicad:7.0
pull_policy: if-not-present
script:
- mkdir -p build/default/src
- cd build/default
- cp ../../elec/layout/default/*.kicad_pcb src/
- sed -i "s/"'{{GITHASH}}'"/$CI_COMMIT_SHORT_SHA/g" src/*.kicad_pcb
- mkdir gerbers
- kicad-cli pcb export gerbers -o gerbers/ src/*.kicad_pcb
- kicad-cli pcb export drill -o gerbers/ src/*.kicad_pcb
- zip "gerbers-$CI_COMMIT_SHORT_SHA.zip" gerbers/*
# position files need some massaging for JLCPCB
- kicad-cli pcb export pos --format csv --units mm --use-drill-file-origin -o $CI_COMMIT_SHORT_SHA-pos.csv src/*.kicad_pcb
- POS_HEADER="$(cat ../../metadata/pos-header)"
- sed -i "1s/.*/$POS_HEADER/" $CI_COMMIT_SHORT_SHA-pos.csv
# Export step file
- kicad-cli pcb export step --subst-models -o board_3d_shape.step src/*.kicad_pcb
artifacts:
paths:
- build/
build-ato-default:
stage: build
image: registry.atopile.io/atopile/atopile/ci:latest
script:
- ato install
- ato build
artifacts:
paths:
- build/
store-build:
stage: store
image: alpine
script:
- echo "noop"
artifacts:
paths:
- build/