Skip to content

Snap CI

Snap CI #122

name: Snap Build and Test
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
# Allow manual trigger
workflow_dispatch:
jobs:
build-arm64:
runs-on: ubuntu-latest
strategy:
matrix:
platform:
- arm64
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: ${{ matrix.platform }}
- name: Build snap for arm64
uses: diddlesnaps/snapcraft-multiarch-action@v1
id: build
with:
architecture: ${{ matrix.platform }}
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: matter-pi-gpio-commander_${{ github.run_number}}_${{ matrix.platform }}.snap
path: ${{ steps.build.outputs.snap }}
build-and-test-amd64:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Inject amd64 build
run: tests/inject-amd64-arch.sh
- name: Build Snap
uses: snapcore/action-build@v1
id: snapcraft
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.*'
cache: false
- name: Run tests
working-directory: tests
env:
MOCK_GPIO: true
SKIP_TEARDOWN_REMOVAL: true
LOCAL_SERVICE_SNAP: ../${{ steps.snapcraft.outputs.snap }}
run: go test -failfast -p 1 -timeout 20m -v
- name: Upload snap logs
if: always()
uses: actions/upload-artifact@v4
with:
name: snap-logs
path: tests/*.log