Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
488334264This file is pinned to the selected release. Download the original to open it in your design tool.
name: Export Electronics
on:
push:
pull_request:
jobs:
export-electronics-classic:
name: Export Electronics (Classic + Sensor)
runs-on: ubuntu-20.04
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up outputs directory
run: mkdir -p electronics/build/outputs
- name: Install dependencies
run: ./electronics/scripts/dependencies.sh
# Classic Controller board:
- name: Export Classic Controller schematic
run: |
./electronics/scripts/export_schematic.py electronics/splitflap.sch
cp electronics/build/splitflap.pdf electronics/build/outputs/classic-schematic.pdf
cp electronics/build/splitflap.png electronics/build/outputs/classic-schematic.png
env:
PYTHONUNBUFFERED: 1
- name: Export Classic Controller PCB SVG
run: |
./electronics/scripts/generate_svg.py electronics/splitflap.kicad_pcb
cp electronics/build/splitflap_merged.png electronics/build/outputs/classic-pcb-raster.png
./scripts/annotate_image.sh electronics/build/outputs/classic-pcb-raster.png
env:
PYTHONUNBUFFERED: 1
- name: Export Classic Controller PCB fabrication files
run: |
./electronics/scripts/export_jlcpcb.py electronics/splitflap.kicad_pcb
cp -r electronics/build/splitflap-jlc electronics/build/outputs/classic-jlc
- name: Export Classic Controller PCB overview PDF
run: |
./electronics/scripts/generate_pdf.py electronics/splitflap.kicad_pcb
cp electronics/build/splitflap-pcb-packet.pdf electronics/build/outputs/classic-pcb-packet.pdf
env:
PYTHONUNBUFFERED: 1
- name: Panelize Classic Controller PCB
run: |
kikit panelize -p electronics/scripts/config/kikit_panelize_classic.json electronics/splitflap.kicad_pcb electronics/build/panelized_splitflap.kicad_pcb
- name: Export panelized Classic Controller PCB SVG
run: |
./electronics/scripts/generate_svg.py electronics/build/panelized_splitflap.kicad_pcb
cp electronics/build/panelized_splitflap_merged.png electronics/build/outputs/classic-panelized-pcb-raster.png
./scripts/annotate_image.sh electronics/build/outputs/classic-panelized-pcb-raster.png
env:
PYTHONUNBUFFERED: 1
- name: Export panelized Classic Controller PCB fabrication files
run: |
./electronics/scripts/export_jlcpcb.py electronics/build/panelized_splitflap.kicad_pcb
cp -r electronics/build/panelized_splitflap-jlc electronics/build/outputs/classic-panelized-jlc
- name: Export panelized Classic Controller PCB overview PDF
run: |
./electronics/scripts/generate_pdf.py electronics/build/panelized_splitflap.kicad_pcb
cp electronics/build/panelized_splitflap-pcb-packet.pdf electronics/build/outputs/classic-panelized-pcb-packet.pdf
env:
PYTHONUNBUFFERED: 1
# Sensor board:
- name: Export sensor schematic
run: |
./electronics/scripts/export_schematic.py electronics/sensor/sensor.sch
cp electronics/build/sensor.pdf electronics/build/outputs/sensor-schematic.pdf
cp electronics/build/sensor.png electronics/build/outputs/sensor-schematic.png
env:
PYTHONUNBUFFERED: 1
- name: Panelize sensor PCB
run: |
kikit panelize -p electronics/scripts/config/kikit_panelize_sensor.json electronics/sensor/sensor.kicad_pcb electronics/build/panelized_sensor.kicad_pcb
- name: Export panelized sensor PCB SVG
run: |
./electronics/scripts/generate_svg.py electronics/build/panelized_sensor.kicad_pcb
cp electronics/build/panelized_sensor_merged.png electronics/build/outputs/sensor-panelized-pcb-raster.png
./scripts/annotate_image.sh electronics/build/outputs/sensor-panelized-pcb-raster.png
env:
PYTHONUNBUFFERED: 1
- name: Export panelized sensor PCB fabrication files
run: |
./electronics/scripts/export_jlcpcb.py electronics/build/panelized_sensor.kicad_pcb
cp -r electronics/build/panelized_sensor-jlc electronics/build/outputs/sensor-panelized-jlc
- name: Export panelized sensor PCB overview PDF
run: |
./electronics/scripts/generate_pdf.py electronics/build/panelized_sensor.kicad_pcb
cp electronics/build/panelized_sensor-pcb-packet.pdf electronics/build/outputs/sensor-panelized-pcb-packet.pdf
env:
PYTHONUNBUFFERED: 1
# Note: These kibot scripts are run last because they mess with file permissions which breaks other scripts, not sure why
- name: Export BOM [classic + sensors]
uses: INTI-CMNB/KiBot@2ddbea3e681de09147cb1677890694857def32a8
with:
config: electronics/splitflap.kibot.yml
dir: electronics/build
schema: 'electronics/splitflap.sch'
board: 'electronics/splitflap.kicad_pcb'
- name: Copy BOM outputs
run: cp -r electronics/build/bom electronics/build/outputs
- name: Archive artifacts
uses: actions/upload-artifact@v2
if: always()
with:
name: electronics-classic
path: |
electronics/build
- name: Configure AWS Credentials
if: github.event_name == 'push' && github.repository_owner == 'scottbez1'
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Sync artifacts to S3
if: github.event_name == 'push' && github.repository_owner == 'scottbez1'
run: |
aws s3 sync electronics/build/outputs s3://splitflap-artifacts/${GITHUB_REF#refs/heads/}/electronics-classic --delete --acl public-read --cache-control max-age=0,no-cache
export-electronics-chainlink:
name: Export Electronics (Chainlink Driver)
runs-on: ubuntu-20.04
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up outputs directory
run: mkdir -p electronics/build/outputs
- name: Install dependencies
run: ./electronics/scripts/dependencies.sh
# Chainlink Driver:
- name: Export chainlinkDriver schematic
run: |
./electronics/scripts/export_schematic.py electronics/chainlinkDriver/chainlinkDriver.sch
cp electronics/build/chainlinkDriver.pdf electronics/build/outputs/chainlinkDriver-schematic.pdf
cp electronics/build/chainlinkDriver.png electronics/build/outputs/chainlinkDriver-schematic.png
env:
PYTHONUNBUFFERED: 1
- name: Render chainlinkDriver PCB 3D
run: |
./electronics/scripts/export_3d.py electronics/chainlinkDriver/chainlinkDriver.kicad_pcb --width 2000 --height 800 transform z+ z+ z+ z+ z+ z+ z+ z+ mr rx+ rx+ ry- ry- rz-
cp electronics/build/chainlinkDriver-3d.png electronics/build/outputs/chainlinkDriver-3d.png
./scripts/annotate_image.sh electronics/build/outputs/chainlinkDriver-3d.png
env:
PYTHONUNBUFFERED: 1
- name: Export chainlinkDriver JLCPCB fabrication files
run: |
./electronics/scripts/export_jlcpcb.py electronics/chainlinkDriver/chainlinkDriver.kicad_pcb --assembly-schematic electronics/chainlinkDriver/chainlinkDriver.sch
cp -r electronics/build/chainlinkDriver-jlc electronics/build/outputs
- name: Export chainlinkDriver PCB overview PDF
run: |
./electronics/scripts/generate_pdf.py electronics/chainlinkDriver/chainlinkDriver.kicad_pcb
cp electronics/build/chainlinkDriver-pcb-packet.pdf electronics/build/outputs/chainlinkDriver-pcb-packet.pdf
env:
PYTHONUNBUFFERED: 1
- name: Export chainlinkDriver PCB SVG
run: |
./electronics/scripts/generate_svg.py electronics/chainlinkDriver/chainlinkDriver.kicad_pcb
cp electronics/build/chainlinkDriver_merged.png electronics/build/outputs/chainlinkDriver-pcb-raster.png
./scripts/annotate_image.sh electronics/build/outputs/chainlinkDriver-pcb-raster.png
env:
PYTHONUNBUFFERED: 1
# Note: These kibot scripts are run last because they mess with file permissions which breaks other scripts, not sure why
- name: Export BOM [chainlinkDriver]
uses: INTI-CMNB/KiBot@2ddbea3e681de09147cb1677890694857def32a8
with:
config: electronics/chainlinkDriver/chainlinkDriver.kibot.yml
dir: electronics/build
schema: 'electronics/chainlinkDriver/chainlinkDriver.sch'
board: 'electronics/chainlinkDriver/chainlinkDriver.kicad_pcb'
- name: Copy BOM outputs
run: cp -r electronics/build/bom electronics/build/outputs
- name: Archive artifacts
uses: actions/upload-artifact@v2
if: always()
with:
name: electronics-chainlink
path: |
electronics/build
- name: Configure AWS Credentials
if: github.event_name == 'push' && github.repository_owner == 'scottbez1'
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Sync artifacts to S3
if: github.event_name == 'push' && github.repository_owner == 'scottbez1'
run: |
aws s3 sync electronics/build/outputs s3://splitflap-artifacts/${GITHUB_REF#refs/heads/}/electronics-chainlink --delete --acl public-read --cache-control max-age=0,no-cache
export-electronics-chainlink-tester:
name: Export Electronics (Chainlink Driver Tester)
runs-on: ubuntu-20.04
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up outputs directory
run: mkdir -p electronics/build/outputs
- name: Install dependencies
run: ./electronics/scripts/dependencies.sh
# Chainlink Driver Tester:
- name: Export schematic [chainlinkDriverTester]
run: |
./electronics/scripts/export_schematic.py electronics/chainlinkDriverTester/chainlinkDriverTester.sch
cp electronics/build/chainlinkDriverTester.pdf electronics/build/outputs/chainlinkDriverTester-schematic.pdf
cp electronics/build/chainlinkDriverTester.png electronics/build/outputs/chainlinkDriverTester-schematic.png
env:
PYTHONUNBUFFERED: 1
- name: Render PCB 3D [chainlinkDriverTester]
run: |
./electronics/scripts/export_3d.py electronics/chainlinkDriverTester/chainlinkDriverTester.kicad_pcb --width 1600 --height 1100 transform z+ z+ z+ z+ z+ mu mr mr rx+ rx+ ry- ry- rz-
cp electronics/build/chainlinkDriverTester-3d.png electronics/build/outputs/chainlinkDriverTester-3d.png
./scripts/annotate_image.sh electronics/build/outputs/chainlinkDriverTester-3d.png
env:
PYTHONUNBUFFERED: 1
- name: Export JLCPCB fabrication files [chainlinkDriverTester]
run: |
./electronics/scripts/export_jlcpcb.py electronics/chainlinkDriverTester/chainlinkDriverTester.kicad_pcb
cp -r electronics/build/chainlinkDriverTester-jlc electronics/build/outputs
- name: Export PCB overview PDF [chainlinkDriverTester]
run: |
./electronics/scripts/generate_pdf.py electronics/chainlinkDriverTester/chainlinkDriverTester.kicad_pcb
cp electronics/build/chainlinkDriverTester-pcb-packet.pdf electronics/build/outputs/chainlinkDriverTester-pcb-packet.pdf
env:
PYTHONUNBUFFERED: 1
- name: Export PCB SVG [chainlinkDriverTester]
run: |
./electronics/scripts/generate_svg.py electronics/chainlinkDriverTester/chainlinkDriverTester.kicad_pcb
cp electronics/build/chainlinkDriverTester_merged.png electronics/build/outputs/chainlinkDriverTester-pcb-raster.png
./scripts/annotate_image.sh electronics/build/outputs/chainlinkDriverTester-pcb-raster.png
env:
PYTHONUNBUFFERED: 1
# Note: These kibot scripts are run last because they mess with file permissions which breaks other scripts, not sure why
- name: Export BOM [chainlinkDriverTester]
uses: INTI-CMNB/KiBot@2ddbea3e681de09147cb1677890694857def32a8
with:
config: electronics/chainlinkDriverTester/chainlinkDriverTester.kibot.yml
dir: electronics/build
schema: 'electronics/chainlinkDriverTester/chainlinkDriverTester.sch'
board: 'electronics/chainlinkDriverTester/chainlinkDriverTester.kicad_pcb'
- name: Copy BOM outputs
run: cp -r electronics/build/bom electronics/build/outputs
- name: Archive artifacts
uses: actions/upload-artifact@v2
if: always()
with:
name: electronics-chainlink-tester
path: |
electronics/build
- name: Configure AWS Credentials
if: github.event_name == 'push' && github.repository_owner == 'scottbez1'
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Sync artifacts to S3
if: github.event_name == 'push' && github.repository_owner == 'scottbez1'
run: |
aws s3 sync electronics/build/outputs s3://splitflap-artifacts/${GITHUB_REF#refs/heads/}/electronics-chainlink-tester --delete --acl public-read --cache-control max-age=0,no-cache
export-electronics-chainlink-base:
name: Export Electronics (Chainlink Base)
runs-on: ubuntu-20.04
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up outputs directory
run: mkdir -p electronics/build/outputs
- name: Install dependencies
run: ./electronics/scripts/dependencies.sh
# Chainlink Base:
- name: Export schematic [chainlinkBase]
run: |
./electronics/scripts/export_schematic.py electronics/chainlinkBase/chainlinkBase.sch
cp electronics/build/chainlinkBase.pdf electronics/build/outputs/chainlinkBase-schematic.pdf
cp electronics/build/chainlinkBase-0.png electronics/build/outputs/chainlinkBase-schematic.png
env:
PYTHONUNBUFFERED: 1
- name: Render PCB 3D [chainlinkBase]
run: |
./electronics/scripts/export_3d.py electronics/chainlinkBase/chainlinkBase.kicad_pcb --width 1000 --height 1500 transform z+ z+ mu rx+ rx+ ry- ry- rz-
cp electronics/build/chainlinkBase-3d.png electronics/build/outputs/chainlinkBase-3d.png
./scripts/annotate_image.sh electronics/build/outputs/chainlinkBase-3d.png
env:
PYTHONUNBUFFERED: 1
- name: Export JLCPCB fabrication files [chainlinkBase]
run: |
./electronics/scripts/export_jlcpcb.py electronics/chainlinkBase/chainlinkBase.kicad_pcb
cp -r electronics/build/chainlinkBase-jlc electronics/build/outputs
- name: Export PCB overview PDF [chainlinkBase]
run: |
./electronics/scripts/generate_pdf.py electronics/chainlinkBase/chainlinkBase.kicad_pcb
cp electronics/build/chainlinkBase-pcb-packet.pdf electronics/build/outputs/chainlinkBase-pcb-packet.pdf
env:
PYTHONUNBUFFERED: 1
- name: Export PCB SVG [chainlinkBase]
run: |
./electronics/scripts/generate_svg.py electronics/chainlinkBase/chainlinkBase.kicad_pcb
cp electronics/build/chainlinkBase_merged.png electronics/build/outputs/chainlinkBase-pcb-raster.png
./scripts/annotate_image.sh electronics/build/outputs/chainlinkBase-pcb-raster.png
env:
PYTHONUNBUFFERED: 1
# Note: These kibot scripts are run last because they mess with file permissions which breaks other scripts, not sure why
- name: Export BOM [chainlinkBase]
uses: INTI-CMNB/KiBot@2ddbea3e681de09147cb1677890694857def32a8
with:
config: electronics/chainlinkBase/chainlinkBase.kibot.yml
dir: electronics/build
schema: 'electronics/chainlinkBase/chainlinkBase.sch'
board: 'electronics/chainlinkBase/chainlinkBase.kicad_pcb'
- name: Copy BOM outputs
run: cp -r electronics/build/bom electronics/build/outputs
- name: Archive artifacts
uses: actions/upload-artifact@v2
if: always()
with:
name: electronics-chainlink-base
path: |
electronics/build
- name: Configure AWS Credentials
if: github.event_name == 'push' && github.repository_owner == 'scottbez1'
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Sync artifacts to S3
if: github.event_name == 'push' && github.repository_owner == 'scottbez1'
run: |
aws s3 sync electronics/build/outputs s3://splitflap-artifacts/${GITHUB_REF#refs/heads/}/electronics-chainlink-base --delete --acl public-read --cache-control max-age=0,no-cache