name: Package
on:
  workflow_call:
    inputs:
      version:
        description: SourceGit package version
        required: true
        type: string
jobs:
  windows-portable:
    name: Package portable Windows app
    runs-on: ubuntu-latest
    strategy:
      matrix:
        runtime: [win-x64, win-arm64]
    steps:
      - name: Checkout sources
        uses: actions/checkout@v4
      - name: Download build
        uses: actions/download-artifact@v4
        with:
          name: sourcegit.${{ matrix.runtime }}
          path: build/SourceGit
      - name: Package
        env:
          VERSION: ${{ inputs.version }}
          RUNTIME: ${{ matrix.runtime }}
        run: ./build/scripts/package.windows-portable.sh
      - name: Upload package artifact
        uses: actions/upload-artifact@v4
        with:
          name: package.${{ matrix.runtime }}
          path: build/sourcegit_*.zip
      - name: Delete temp artifacts
        uses: geekyeggo/delete-artifact@v5
        with:
          name: sourcegit.${{ matrix.runtime }}
  osx-app:
    name: Package OSX app
    runs-on: macos-latest
    strategy:
      matrix:
        runtime: [osx-x64, osx-arm64]
    steps:
      - name: Checkout sources
        uses: actions/checkout@v4
      - name: Download build
        uses: actions/download-artifact@v4
        with:
          name: sourcegit.${{ matrix.runtime }}
          path: build
      - name: Package
        env:
          VERSION: ${{ inputs.version }}
          RUNTIME: ${{ matrix.runtime }}
        run: |
          mkdir build/SourceGit
          tar -xf "build/sourcegit.${{ matrix.runtime }}.tar" -C build/SourceGit
          ./build/scripts/package.osx-app.sh
      - name: Upload package artifact
        uses: actions/upload-artifact@v4
        with:
          name: package.${{ matrix.runtime }}
          path: build/sourcegit_*.zip
      - name: Delete temp artifacts
        uses: geekyeggo/delete-artifact@v5
        with:
          name: sourcegit.${{ matrix.runtime }}
  linux:
    name: Package Linux
    runs-on: ubuntu-latest
    strategy:
      matrix:
        runtime: [linux-x64, linux-arm64]
    steps:
      - name: Checkout sources
        uses: actions/checkout@v4
      - name: Download package dependencies
        run: |
          sudo add-apt-repository universe
          sudo apt-get update
          sudo apt-get install desktop-file-utils rpm libfuse2
      - name: Download build
        uses: actions/download-artifact@v4
        with:
          name: sourcegit.${{ matrix.runtime }}
          path: build
      - name: Package
        env:
          VERSION: ${{ inputs.version }}
          RUNTIME: ${{ matrix.runtime }}
        run: |
          mkdir build/SourceGit
          tar -xf "build/sourcegit.${{ matrix.runtime }}.tar" -C build/SourceGit
          ./build/scripts/package.linux.sh
      - name: Upload package artifacts
        uses: actions/upload-artifact@v4
        with:
          name: package.${{ matrix.runtime }}
          path: |
            build/sourcegit-*.AppImage
            build/sourcegit_*.deb
            build/sourcegit-*.rpm
      - name: Delete temp artifacts
        uses: geekyeggo/delete-artifact@v5
        with:
          name: sourcegit.${{ matrix.runtime }}