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 zsync - 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: Checksum and zsync metadata run: | cd dist sha256sum GAMEMAX-LCD-x86_64.AppImage > GAMEMAX-LCD-x86_64.AppImage.sha256 zsyncmake -u "https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/GAMEMAX-LCD-x86_64.AppImage" \ -o GAMEMAX-LCD-x86_64.AppImage.zsync GAMEMAX-LCD-x86_64.AppImage cat GAMEMAX-LCD-x86_64.AppImage.sha256 ls -l - 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` **Integrity:** verify the download with the published SHA-256, or use `appimageupdatetool`/AppImageUpdate with the `.zsync` asset for delta updates. The built-in updater (v1.2.3+) also verifies that checksum before replacing itself. Independent project, not affiliated with the vendor — see DISCLAIMER.md. files: | dist/GAMEMAX-LCD-x86_64.AppImage dist/GAMEMAX-LCD-x86_64.AppImage.sha256 dist/GAMEMAX-LCD-x86_64.AppImage.zsync