name: Flutter Release

on:
  workflow_dispatch:
  push:
    tags:
      - "v*"

permissions:
  contents: write

# Set by fl_build
# env:
#   APP_NAME: ServerBox
#   BUILD_NUMBER: ${{ github.ref_name }}

jobs:
  releaseAndroid:
    name: Release android
    runs-on: ubuntu-22.04
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Install Flutter
        uses: subosito/flutter-action@v2
        with:
          channel: "stable"
          flutter-version: "3.35.3"
      - uses: actions/setup-java@v4
        with:
          distribution: "zulu"
          java-version: "17"
      - name: Fetch secrets
        run: |
          curl -u ${{ secrets.BASIC_AUTH }} -o android/app/app.key ${{ secrets.URL_PREFIX }}app.key
          curl -u ${{ secrets.BASIC_AUTH }} -o android/key.properties ${{ secrets.URL_PREFIX }}key.properties
      - name: Build
        run: dart run fl_build -p android
      - name: Rename for fdroid
        run: |
          mv build/app/outputs/flutter-apk/${{ env.APP_NAME }}_${{ env.BUILD_NUMBER }}_arm64.apk build/app/outputs/flutter-apk/${{ env.APP_NAME }}_v1.0.${{ env.BUILD_NUMBER }}_arm64.apk
          mv build/app/outputs/flutter-apk/${{ env.APP_NAME }}_${{ env.BUILD_NUMBER }}_arm.apk build/app/outputs/flutter-apk/${{ env.APP_NAME }}_v1.0.${{ env.BUILD_NUMBER }}_arm.apk
          mv build/app/outputs/flutter-apk/${{ env.APP_NAME }}_${{ env.BUILD_NUMBER }}_amd64.apk build/app/outputs/flutter-apk/${{ env.APP_NAME }}_v1.0.${{ env.BUILD_NUMBER }}_amd64.apk
      - name: Create Release
        uses: softprops/action-gh-release@v2
        with:
          files: |
            build/app/outputs/flutter-apk/${{ env.APP_NAME }}_v1.0.${{ env.BUILD_NUMBER }}_arm64.apk
            build/app/outputs/flutter-apk/${{ env.APP_NAME }}_v1.0.${{ env.BUILD_NUMBER }}_arm.apk
            build/app/outputs/flutter-apk/${{ env.APP_NAME }}_v1.0.${{ env.BUILD_NUMBER }}_amd64.apk
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

  releaseLinux:
    name: Release linux
    runs-on: ubuntu-22.04
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Install Flutter
        uses: subosito/flutter-action@v2
      - name: Install dependencies
        run: |
          sudo apt update
          # Basic
          sudo apt install -y clang cmake ninja-build pkg-config libgtk-3-dev mesa-utils libvulkan-dev desktop-file-utils wget
          # App Specific
          sudo apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libunwind-dev libsecret-1-dev
      - name: Build
        run: |
          dart run fl_build -p linux
      - name: Create Release
        uses: softprops/action-gh-release@v2
        with:
          files: |
            ${{ env.APP_NAME }}_${{ env.BUILD_NUMBER }}_amd64.AppImage
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

  releaseWin:
    name: Release windows
    runs-on: windows-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Install Flutter
        uses: subosito/flutter-action@v2
      - name: Build
        run: dart run fl_build -p windows
      - name: Create Release
        uses: softprops/action-gh-release@v2
        with:
          files: |
            ${{ env.APP_NAME }}_${{ env.BUILD_NUMBER }}_windows_amd64.zip
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

  # releaseApple:
  #   name: Release ios and macos
  #   runs-on: macos-latest
  #   steps:
  #     - name: Checkout
  #       uses: actions/checkout@v4
  #     - name: Install Flutter
  #       uses: subosito/flutter-action@v2
  #     - name: Build
  #       run: dart run fl_build -p ios
  #     - name: Create Release
  #       uses: softprops/action-gh-release@v2
  #       with:
  #         files: |
  #           ${{ env.APP_NAME }}_universal.ipa
  #       env:
  #         GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
