name: build appimage

on: [push, pull_request, workflow_dispatch]

jobs:
  pre_job:
    runs-on: ubuntu-latest
    outputs:
      should_skip: ${{ steps.skip_check.outputs.should_skip }}
    steps:
    - id: skip_check
      uses: fkirc/skip-duplicate-actions@v5
      with:
        # All of these options are optional, so you can remove them if you are happy with the defaults
        concurrent_skipping: 'same_content_newer'
        do_not_skip: '["workflow_dispatch", "schedule"]'

  appimage:
    needs: pre_job
    if: ${{ needs.pre_job.outputs.should_skip != 'true' }}

    runs-on: ubuntu-latest

    steps:
    - name: Checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        submodules: recursive

    - name: Build
      uses: docker://ghcr.io/kdab/kdesrc-build:latest

    - name: Upload AppImage
      uses: actions/upload-artifact@v4
      with:
        name: appimage
        path: ${{ github.workspace }}/*.AppImage

    - name: Upload Debug Info
      uses: actions/upload-artifact@v4
      with:
        name: debuginfo
        path: ${{ github.workspace }}/hotspot-debuginfo-*
