name: Build AppImage
on:
  push:
    branches:
      - main
    tags:
      - v*
    paths-ignore:
      - web/**
      - doc/**

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  build:
    runs-on: ubuntu-22.04
    permissions:
      contents: write
      discussions: write
    steps:
      - run: sudo apt-get -qq update
      - name: Install dependencies
        run: |
          sudo apt-get install -yqq --no-install-recommends \
            audacious-dev \
            cmake \
            gawk \
            lcov \
            libaudclient-dev \
            libcairo2-dev \
            libcurl4-gnutls-dev \
            libdbus-glib-1-dev \
            libfuse2 \
            libglib2.0-dev \
            libical-dev \
            libimlib2-dev \
            libircclient-dev \
            libiw-dev \
            liblua5.3-dev \
            libmicrohttpd-dev \
            libmysqlclient-dev \
            libpulse-dev \
            librsvg2-dev \
            libsystemd-dev \
            libwayland-dev \
            libx11-dev \
            libxdamage-dev \
            libxext-dev \
            libxft-dev \
            libxinerama-dev \
            libxml2-dev \
            libxmmsclient-dev \
            libxnvctrl-dev \
            ncurses-dev \
            ninja-build \
            pandoc \
            python3 \
            &&
            pip3 install --upgrade pyyaml
      - name: Checkout
        uses: actions/checkout@v4
      - name: Import GPG Deploy Key
        run: |
          echo "${{ secrets.GPG_DEPLOY_KEY }}" > appimage/secret.gpg
          gpg --import appimage/secret.gpg
      - name: Build AppImage
        run: CC=clang-14 CXX=clang++-14 ./appimage/build.sh
      - name: Upload AppImage artifact
        uses: actions/upload-artifact@v3
        with:
          name: conky-x86_64.AppImage
          path: conky-x86_64.AppImage
      - name: Upload AppImage checksum artifact
        uses: actions/upload-artifact@v3
        with:
          name: conky-x86_64.AppImage.sha256
          path: conky-x86_64.AppImage.sha256
      - name: Upload man page artifact
        uses: actions/upload-artifact@v3
        with:
          name: conky.1.gz
          path: conky.1.gz
      - name: Create Conky Release
        id: create_release
        uses: softprops/action-gh-release@v1
        if: startsWith(github.ref, 'refs/tags/')
        with:
          draft: false
          prerelease: false
          discussion_category_name: General
          generate_release_notes: true
          files: |
            conky-x86_64.AppImage
            conky-x86_64.AppImage.sha256
            conky.1.gz
