apcountryman / prototype-kicad-project-ci-cd

KiCad project CI/CD prototype.
Other
0 stars 1 forks source link

Add PCB renders generation CI job #34

Closed apcountryman closed 2 years ago

apcountryman commented 2 years ago

Add PCB renders generation CI job. The proposed design was outlined in #33.

if ! mkdir pcb_renders; then abort fi

local layouts; mapfile -t layouts < <( git -C "$repository" ls-files '*.kicad_pcb' | xargs -r -d '\n' -I '{}' find "$repository/{}" ); readonly layouts local layout_name local -r formats=( "jpg" "png" "svg" )

for layout in "${layouts[@]}"; do layout_name=$( basename "$layout" )

for format in "${formats[@]}"; do
    if ! "$repository/utilities/PcbDraw/pcbdraw/pcbdraw.py" "$layout" "$pcb_renders/$layout_name-front.$format"; then
        abort
    fi

    if ! "$repository/utilities/PcbDraw/pcbdraw/pcbdraw.py" -b "$layout" "$pcb_renders/$layout_name-back.$format"; then
        abort
    fi
done

done

- [ ] Add PCB renders generation (and archiving) CI job to `.github/workflows/ci.yml`:
```yaml
generate-pcb-renders:
    name: Generate PCB renders
    runs-on: ubuntu-20.04
    steps:
        - uses: actions/checkout@v2
          with:
              submodules: recursive
        - name: Generate PCB renders
          shell: bash
          run: ./ci/generate-pcb-renders
        - name: Archive generated PCB renders
          uses: actions/upload-artifact@v2
          with:
              name: pcb-renders
              path: pcb-renders
              retention-days: 7