Add autorouting to GitHub build workflow
This commit is contained in:
parent
071f716d60
commit
8cccf33fc8
|
|
@ -0,0 +1,18 @@
|
||||||
|
name: 'Autoroute'
|
||||||
|
description: 'Autoroute a given DSN file to SES with FreeRouting'
|
||||||
|
inputs:
|
||||||
|
boards:
|
||||||
|
description: 'Specctra SES output file'
|
||||||
|
required: true
|
||||||
|
runs:
|
||||||
|
using: 'docker'
|
||||||
|
image: 'docker://soundmonster/freerouting_cli:v0.1.0'
|
||||||
|
entrypoint: '/bin/sh'
|
||||||
|
args:
|
||||||
|
- '-c'
|
||||||
|
- |
|
||||||
|
for board in ${{ inputs.boards }};
|
||||||
|
do
|
||||||
|
echo Processing $board
|
||||||
|
java -jar /opt/freerouting_cli.jar -de ergogen/output/pcbs/${board}.dsn -do ergogen/output/pcbs/${board}.ses
|
||||||
|
done
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
name: 'Export DSN'
|
||||||
|
description: 'Export Specctra DSN from a Kicad PCB'
|
||||||
|
inputs:
|
||||||
|
boards:
|
||||||
|
description: 'Board names'
|
||||||
|
required: true
|
||||||
|
runs:
|
||||||
|
using: 'docker'
|
||||||
|
image: 'docker://soundmonster/kicad-automation-scripts:latest'
|
||||||
|
entrypoint: '/bin/sh'
|
||||||
|
args:
|
||||||
|
- '-c'
|
||||||
|
# GH actions set $HOME to a weird location and we have to move Kicad settings there first
|
||||||
|
- |
|
||||||
|
mkdir -p $HOME/.config/kicad ;
|
||||||
|
cp /root/.config/kicad/* $HOME/.config/kicad ;
|
||||||
|
for board in ${{ inputs.boards }};
|
||||||
|
do
|
||||||
|
echo Processing $board
|
||||||
|
/usr/lib/python2.7/dist-packages/kicad-automation/pcbnew_automation/export_dsn.py $GITHUB_WORKSPACE/ergogen/output/pcbs/${board}.kicad_pcb $GITHUB_WORKSPACE/ergogen/output/pcbs/${board}.dsn
|
||||||
|
done
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
name: 'Export Gerbers'
|
||||||
|
description: 'Export Gerber files from a Kicad PCB'
|
||||||
|
inputs:
|
||||||
|
boards:
|
||||||
|
description: 'Board name'
|
||||||
|
required: true
|
||||||
|
fab:
|
||||||
|
description: 'Fabrication profile'
|
||||||
|
default: 'jlcpcb'
|
||||||
|
flags:
|
||||||
|
description: 'Additional flags for kikit fab'
|
||||||
|
default: '--no-assembly'
|
||||||
|
runs:
|
||||||
|
using: 'docker'
|
||||||
|
image: 'docker://yaqwsx/kikit:v0.7'
|
||||||
|
entrypoint: '/bin/sh'
|
||||||
|
args:
|
||||||
|
- '-c'
|
||||||
|
- |
|
||||||
|
for board in ${{ inputs.boards }};
|
||||||
|
do
|
||||||
|
echo Processing $board
|
||||||
|
mkdir -p $GITHUB_WORKSPACE/ergogen/output/gerbers/${board} ;
|
||||||
|
kikit fab ${{ inputs.fab }} ${{ inputs.flags }} $GITHUB_WORKSPACE/ergogen/output/pcbs/${board}_routed.kicad_pcb $GITHUB_WORKSPACE/ergogen/output/gerbers/${board}
|
||||||
|
done
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
name: 'Import SES to Kicad'
|
||||||
|
description: 'Import Specctra SES into a Kicad PCB'
|
||||||
|
inputs:
|
||||||
|
boards:
|
||||||
|
description: 'Board name'
|
||||||
|
required: true
|
||||||
|
runs:
|
||||||
|
using: 'docker'
|
||||||
|
image: 'docker://soundmonster/kicad-automation-scripts:latest'
|
||||||
|
entrypoint: '/bin/sh'
|
||||||
|
args:
|
||||||
|
- '-c'
|
||||||
|
# GH actions set $HOME to a weird location and we have to move Kicad settings there first
|
||||||
|
- |
|
||||||
|
mkdir -p $HOME/.config/kicad ;
|
||||||
|
cp /root/.config/kicad/* $HOME/.config/kicad ;
|
||||||
|
for board in ${{ inputs.boards }};
|
||||||
|
do
|
||||||
|
echo Processing $board
|
||||||
|
/usr/lib/python2.7/dist-packages/kicad-automation/pcbnew_automation/import_ses.py $GITHUB_WORKSPACE/ergogen/output/pcbs/${board}.kicad_pcb $GITHUB_WORKSPACE/output/pcbs/${board}.ses --output-file $GITHUB_WORKSPACE/output/pcbs/${board}_routed.kicad_pcb;
|
||||||
|
done
|
||||||
|
|
@ -21,8 +21,28 @@ jobs:
|
||||||
run: npm install
|
run: npm install
|
||||||
- name: Generate unrouted PCBs with Ergogen (definition in package.json)
|
- name: Generate unrouted PCBs with Ergogen (definition in package.json)
|
||||||
run: npm run gen
|
run: npm run gen
|
||||||
|
- name: Export DSN
|
||||||
|
uses: ./.github/actions/export-dsn
|
||||||
|
with:
|
||||||
|
boards: corney_island
|
||||||
|
- name: Autoroute PCB
|
||||||
|
uses: ./.github/actions/autoroute
|
||||||
|
with:
|
||||||
|
boards: corney_island
|
||||||
|
- name: Import SES
|
||||||
|
uses: ./.github/actions/import-ses
|
||||||
|
with:
|
||||||
|
boards: corney_island
|
||||||
|
- name: DRC check
|
||||||
|
uses: ./.github/actions/run-drc
|
||||||
|
with:
|
||||||
|
boards: corney_island
|
||||||
|
- name: Export Gerbers
|
||||||
|
uses: ./.github/actions/export-gerbers
|
||||||
|
with:
|
||||||
|
boards: corney_island
|
||||||
- name: Persist output
|
- name: Persist output
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: unrouted-pcb
|
name: corney_island
|
||||||
path: ergogen/output/pcbs
|
path: ergogen/output
|
||||||
Loading…
Reference in New Issue