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:
parent
3e574af64e
commit
7ab5d53352
1 changed files with 60 additions and 0 deletions
60
.github/workflows/test.yml
vendored
60
.github/workflows/test.yml
vendored
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue