Files
trail-mate/.github/workflows/cardputer-zero-linux.yml

73 lines
2.3 KiB
YAML

name: Cardputer Zero Linux
on:
push:
paths:
- "apps/linux_cardputer_zero/**"
- "builds/linux_cmake/**"
- "cmake/**"
- "modules/**"
- "platform/linux/**"
- ".github/workflows/cardputer-zero-linux.yml"
pull_request:
paths:
- "apps/linux_cardputer_zero/**"
- "builds/linux_cmake/**"
- "cmake/**"
- "modules/**"
- "platform/linux/**"
- ".github/workflows/cardputer-zero-linux.yml"
jobs:
cardputer-zero:
name: Cardputer Zero shell
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Verify shared/platform UI boundaries
run: python3 scripts/check_platform_ui_boundaries.py
- name: Verify repository root has no build artifacts
run: python3 scripts/check_root_build_artifacts.py
- name: Install Cardputer Zero build dependencies
run: |
sudo apt-get update
sudo apt-get install -y ninja-build dpkg-dev libsqlite3-dev libcurl4-openssl-dev libssl-dev libwayland-bin libwayland-dev libxkbcommon-dev wayland-protocols
- name: Configure Cardputer Zero Linux shell
working-directory: builds/linux_cmake
run: cmake --preset linux-cardputer-zero-debug
- name: Build Cardputer Zero Linux shell
working-directory: builds/linux_cmake
run: cmake --build --preset linux-cardputer-zero-debug-build
- name: Run Cardputer Zero smoke tests
working-directory: builds/linux_cmake
run: ctest --preset linux-cardputer-zero-debug-test
- name: Verify build stayed out of repository root
run: python3 scripts/check_root_build_artifacts.py
- name: Configure Cardputer Zero Debian package
working-directory: builds/linux_cmake
run: cmake --preset linux-cardputer-zero-release
- name: Set up QEMU for arm64 Docker package build
uses: docker/setup-qemu-action@v3
with:
platforms: arm64
- name: Build Cardputer Zero Debian package
run: bash apps/linux_cardputer_zero/tools/build_cardputer_zero_deb.sh
- name: Upload Cardputer Zero Debian package
uses: actions/upload-artifact@v4
with:
name: trailmate-cardputer-zero-deb
path: build/cardputer-zero-deb/*.deb
if-no-files-found: error