feat: add Arch Linux to CI test matrix

Add comprehensive Arch Linux testing to installer-test job.

Changes to .github/workflows/test.yml:
- Add archlinux:latest to test matrix (5 OS versions tested now)
- Set continue-on-error for Arch (rolling release can expose bleeding-edge issues)
- Arch tests run in parallel with Debian/Ubuntu tests

Changes to tests/test_installer.sh:
- Refactored to be OS-agnostic (supports Debian/Ubuntu AND Arch Linux)
- Added OS type detection (apt-get vs pacman)
- Added check_package() helper function (uses dpkg or pacman based on OS)
- Conditional Debian environment setup (DEBIAN_FRONTEND only for Debian/Ubuntu)
- OS-specific package name verification:
  - Debian/Ubuntu: python3-gi, python3-dbus, python3-cairo, bluez
  - Arch Linux: python-gobject, python-dbus, python-cairo, bluez, bluez-utils
- OS-specific build tool checks (dpkg -l vs pacman -Q)
- Updated summary output to show correct packages per OS

install.sh changes:
- NONE - Arch Linux support already complete and correct!

CI Matrix now tests:
- Debian 12 (Bookworm - current stable)
- Debian Trixie (testing - next release) [non-blocking]
- Ubuntu 22.04 LTS (Jammy)
- Ubuntu 24.04 LTS (Noble)
- Arch Linux (rolling release) [non-blocking] [NEW]

Benefits:
- Validates install.sh Arch support works in practice
- Tests with newer BlueZ/Python versions (rolling release)
- Forward compatibility testing
- Broader Linux distribution coverage

🤖 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-28 21:00:58 -04:00
commit d08a613ac8
2 changed files with 80 additions and 29 deletions

View file

@ -130,9 +130,10 @@ jobs:
- "debian:trixie" # Debian Trixie (testing - next release)
- "ubuntu:22.04" # Ubuntu Jammy LTS
- "ubuntu:24.04" # Ubuntu Noble (latest LTS)
- "archlinux:latest" # Arch Linux (rolling release)
# Allow Trixie to fail without blocking CI (testing can be unstable)
continue-on-error: ${{ matrix.os-image == 'debian:trixie' }}
# Allow Trixie and Arch to fail without blocking CI (testing/rolling can be unstable)
continue-on-error: ${{ matrix.os-image == 'debian:trixie' || matrix.os-image == 'archlinux:latest' }}
container:
image: ${{ matrix.os-image }}