name: release # Build the GAMEMAX LCD AppImage from source and attach it to a GitHub release. # Trigger: push a tag like v1.0.0 (or run manually from the Actions tab). on: push: tags: ["v*"] workflow_dispatch: permissions: contents: write jobs: appimage: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install build dependencies run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ libgl1 libegl1 libxkbcommon0 libdbus-1-3 libfuse2 fuse - name: Set up uv uses: astral-sh/setup-uv@v5 - name: Build AppImage env: APPIMAGE_EXTRACT_AND_RUN: "1" run: bash packaging/build_appimage.sh - name: Smoke test the bundle (no display) env: APPIMAGE_EXTRACT_AND_RUN: "1" QT_QPA_PLATFORM: offscreen run: | ./dist/GAMEMAX-LCD-x86_64.AppImage --selftest - name: Publish release uses: softprops/action-gh-release@v2 with: name: GAMEMAX LCD ${{ github.ref_name }} generate_release_notes: true body: | Linux bridge + tray app for the LCD panel of GAMEMAX IceBurg Digital AIO coolers. Built automatically from `${{ github.sha }}`. **Download** `GAMEMAX-LCD-x86_64.AppImage`, then: ```bash chmod +x GAMEMAX-LCD-x86_64.AppImage ./GAMEMAX-LCD-x86_64.AppImage # tray + window ./GAMEMAX-LCD-x86_64.AppImage --selftest # verify the bundle starts ``` Device access still needs the udev rule once: `sudo cp packaging/70-gamemax.rules /etc/udev/rules.d/ && sudo udevadm control --reload` Independent project, not affiliated with the vendor — see DISCLAIMER.md. files: dist/GAMEMAX-LCD-x86_64.AppImage