name: Build AppImage

on:
  push:
    branches: [main]
  workflow_dispatch:

permissions:
  contents: read

jobs:
  build-appimage:
    runs-on: ubuntu-latest
    container: node:24-trixie
    steps:
      - name: Check out source
        uses: actions/checkout@v4

      - name: Install build dependencies
        run: |
          export DEBIAN_FRONTEND=noninteractive
          apt-get update
          apt-get install -y --no-install-recommends \
            ca-certificates \
            curl \
            gobject-introspection \
            gir1.2-gtk-4.0 \
            gir1.2-gtk4layershell-1.0 \
            python3 \
            python3-cairo \
            python3-evdev \
            python3-gi \
            python3-gi-cairo \
            python3-xlib \
            squashfs-tools

      - name: Build AppImage
        run: ./packaging/build-appimage.sh

      - name: Upload AppImage
        uses: actions/upload-artifact@v3
        with:
          name: Korin-Timer.AppImage
          path: build/Korin-Timer.AppImage
          if-no-files-found: error
          retention-days: 30
