ci: add Raspberry Pi OS ARM testing (32-bit and 64-bit)

Add QEMU-based ARM testing for both armhf (32-bit) and arm64 (64-bit)
architectures to validate installer on Raspberry Pi OS Lite. Tests run
only on PRs to main branch to conserve CI resources while ensuring
compatibility with ARM platforms before merge.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
torlando-tech 2025-10-29 10:34:39 -04:00
commit 7ab5d53352

View file

@ -164,3 +164,63 @@ jobs:
echo "✓ Pip packages: bleak, bluezero" >> $GITHUB_STEP_SUMMARY
echo "✓ Install method: System packages (no compilation)" >> $GITHUB_STEP_SUMMARY
echo "✓ Installation time: < 1 minute" >> $GITHUB_STEP_SUMMARY
installer-test-arm:
name: Installer Test (Raspberry Pi OS - ARM)
runs-on: ubuntu-latest
# Only run on pull requests to main branch
if: github.event_name == 'pull_request' && github.base_ref == 'main'
timeout-minutes: 20 # ARM emulation is slower, allow extra time
strategy:
fail-fast: false
matrix:
include:
# Raspberry Pi OS 32-bit (armhf/armv7)
# Based on Debian Bookworm - matches Raspberry Pi OS Lite 32-bit
- os-image: "arm32v7/debian:bookworm"
platform: "linux/arm/v7"
arch-name: "Raspberry Pi OS 32-bit (armhf)"
# Raspberry Pi OS 64-bit (arm64/aarch64)
# Based on Debian Bookworm - matches Raspberry Pi OS Lite 64-bit
- os-image: "arm64v8/debian:bookworm"
platform: "linux/arm64"
arch-name: "Raspberry Pi OS 64-bit (arm64)"
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: arm,arm64
- name: Run installer test on ${{ matrix.arch-name }}
run: |
docker run --rm \
--platform ${{ matrix.platform }} \
-v $PWD:/workspace \
-w /workspace \
-e DEBIAN_FRONTEND=noninteractive \
-e DEBCONF_NONINTERACTIVE_SEEN=true \
-e TZ=UTC \
${{ matrix.os-image }} \
bash tests/test_installer.sh
continue-on-error: false
- name: Installation summary
if: always()
run: |
echo "## ARM Installer Test Results" >> $GITHUB_STEP_SUMMARY
echo "**Architecture:** ${{ matrix.arch-name }}" >> $GITHUB_STEP_SUMMARY
echo "**Platform:** ${{ matrix.platform }}" >> $GITHUB_STEP_SUMMARY
echo "**Base Image:** ${{ matrix.os-image }}" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "✓ System packages: python3-gi, python3-dbus, python3-cairo, bluez" >> $GITHUB_STEP_SUMMARY
echo "✓ Pip packages: bleak==1.1.1, bluezero" >> $GITHUB_STEP_SUMMARY
echo "✓ BLE interface files copied" >> $GITHUB_STEP_SUMMARY
echo "✓ BlueZ experimental mode configured" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "_Note: Tests run via QEMU emulation (2-5x slower than native)_" >> $GITHUB_STEP_SUMMARY