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