name: Build

on: push

jobs:
  build-windows-msi:
    name: Windows Build (MSI)
    runs-on: windows-latest
    steps:
      - name: Install Qt
        uses: jurplel/install-qt-action@v3
        with:
          version: 5.15.2
          arch: win32_msvc2019
          cache: true
      - name: Checkout Repo
        uses: actions/checkout@v4
      - name: Download Tools
        run: python scripts\download.py
      - name: Download OpenSSL
        run: choco install -y openssl.light --version=1.1.1.20181020 --x86 --params "/InstallDir:C:\OpenSSL"
      - name: Build MSI Package
        id: build
        shell: cmd
        run: |
          set QTDIR=%Qt5_DIR%
          set OPENSSL=C:\OpenSSL
          set PATH=%PATH%;C:\Program Files (x86)\WiX Toolset v3.11\bin
          call scripts\windows\packages\msi\build.msi.bat || exit
          set /p VERSION=<VERSION
          echo VERSION=%VERSION%>>%GITHUB_ENV%
      - name: Upload Assets
        uses: ncipollo/release-action@v1
        with:
          artifacts: apk-editor-studio_windows_${{ env.VERSION }}.msi
          artifactErrorsFailBuild: true
          allowUpdates: true
          omitName: true
          omitBody: true
          prerelease: true
          tag: development
          token: ${{ secrets.GITHUB_TOKEN }}
  build-windows-zip:
    name: Windows Build (ZIP)
    runs-on: windows-latest
    steps:
      - name: Install Qt
        uses: jurplel/install-qt-action@v3
        with:
          version: 5.15.2
          arch: win32_msvc2019
          cache: true
      - name: Checkout Repo
        uses: actions/checkout@v4
      - name: Download Tools
        run: python scripts\download.py
      - name: Download OpenSSL
        run: choco install -y openssl.light --version=1.1.1.20181020 --x86 --params "/InstallDir:C:\OpenSSL"
      - name: Build ZIP Package
        id: build
        shell: cmd
        run: |
          set QTDIR=%Qt5_DIR%
          set OPENSSL=C:\OpenSSL
          call "scripts\windows\packages\zip\build.zip.bat" || exit
          set /p VERSION=<VERSION
          echo VERSION=%VERSION%>>%GITHUB_ENV%
      - name: Upload Assets
        uses: ncipollo/release-action@v1
        with:
          artifacts: apk-editor-studio_windows_${{ env.VERSION }}.zip
          artifactErrorsFailBuild: true
          allowUpdates: true
          omitName: true
          omitBody: true
          prerelease: true
          tag: development
          token: ${{ secrets.GITHUB_TOKEN }}
  build-linux-appimage:
    name: Linux Build (AppImage)
    runs-on: ubuntu-20.04
    steps:
      - name: Install Dependencies
        run: |
          sudo add-apt-repository ppa:beineri/opt-qt-5.15.2-focal -y
          sudo apt-get update -qq
          sudo apt-get install qt515base qt515imageformats qt515svg qt515tools libgl1-mesa-dev libsecret-1-dev adb zipalign
      - name: Checkout Repo
        uses: actions/checkout@v4
      - name: Download Tools
        run: python3 scripts/download.py
      - name: Build AppImage Package
        id: build
        run: |
          source /opt/qt515/bin/qt515-env.sh || true
          scripts/linux/packages/appimage/build.appimage.sh
          echo "VERSION=$(cat VERSION)" >> $GITHUB_ENV
      - name: Upload Assets
        uses: ncipollo/release-action@v1
        with:
          artifacts: scripts/linux/packages/appimage/apk-editor-studio_linux_${{ env.VERSION }}.AppImage
          artifactErrorsFailBuild: true
          allowUpdates: true
          omitName: true
          omitBody: true
          prerelease: true
          tag: development
          token: ${{ secrets.GITHUB_TOKEN }}
  build-macos:
    name: macOS Build (APP, DMG)
    runs-on: macos-12
    steps:
      - name: Install Qt
        uses: jurplel/install-qt-action@v3
        with:
          version: 5.15.2
          cache: true
      - name: Checkout Repo
        uses: actions/checkout@v4
      - name: Download Tools
        run: python3 scripts/download.py
      - name: Build APP/DMG Package
        id: build
        run: |
          scripts/macos/packages/app/build.app.command
          npm i appdmg
          scripts/macos/packages/dmg/build.dmg.command
          echo "VERSION=$(cat VERSION)" >> $GITHUB_ENV
      - name: Upload Assets
        uses: ncipollo/release-action@v1
        with:
          artifacts: scripts/macos/packages/app/apk-editor-studio_macos_${{ env.VERSION }}.app.zip,scripts/macos/packages/dmg/apk-editor-studio_macos_${{ env.VERSION }}.dmg
          artifactErrorsFailBuild: true
          allowUpdates: true
          omitName: true
          omitBody: true
          prerelease: true
          tag: development
          token: ${{ secrets.GITHUB_TOKEN }}
