name: Epic Firka Builder Workflow

on: workflow_dispatch

jobs:
  build-android:
    name: Build for Android
    runs-on: ubuntu-latest
    permissions:
      contents: read

    steps:
      - name: Download repository
        uses: actions/checkout@v4.2.2

      - name: Download Android keystore
        id: android_keystore
        uses: timheuer/base64-to-file@v1.2.4
        with:
          fileName: firkaapp.jks
          encodedString: ${{ secrets.KEYSTORE_BASE64 }}

      - name: Create key.properties
        run: |
          echo "storeFile=${{ steps.android_keystore.outputs.filePath }}" > refilc/android/key.properties
          echo "storePassword=${{ secrets.KEY_PASSWORD }}" >> refilc/android/key.properties
          echo "keyPassword=${{ secrets.KEY_PASSWORD }}" >> refilc/android/key.properties
          echo "keyAlias=${{ secrets.KEY_ALIAS }}" >> refilc/android/key.properties
          cp refilc/android/key.properties refilc/android/debugkey.properties

      - uses: actions/setup-java@v4.7.0
        with:
          distribution: "temurin"
          java-version: "17"
          cache: "gradle"

      - uses: subosito/flutter-action@v2.18.0
        with:
          flutter-version: "3.27.1"
          channel: "stable"
          cache: "true"

      - name: Install dependencies
        run: |
          chmod +x fix-pub.sh
          ./fix-pub.sh

      - name: Build
        run: |
            cd refilc
            chmod +x build.sh
            ./build.sh
            cd ..

      - name: Upload Android Release
        uses: actions/upload-artifact@v4.6.1
        with:
          name: android-apks
          path: refilc/build/app/outputs/flutter-apk/app-*-release.apk


  build-ios:
    name: Build for IOS
    runs-on: macos-latest
    permissions:
      contents: read

    steps:
      - name: Download repository
        uses: actions/checkout@v4.2.2

      - uses: subosito/flutter-action@v2.18.0
        with:
          flutter-version: "3.27.1"
          channel: "stable"
          cache: "true"

      - name: Install dependencies
        run: |
          chmod +x fix-pub.sh
          bash fix-pub.sh

      - name: Build
        run: |
          cd refilc
          chmod +x build-ipa.sh
          bash build-ipa.sh
          cd ..

      - name: Create IPA
        run: |
          cd refilc
          cd build/ios/archive/Runner.xcarchive/Products/Applications
          mkdir Payload
          cp -r Runner.app Payload/
          zip -r Payload.zip Payload
          mv Payload.zip firkaapp.ipa
          cd ../../../../..

      - name: Upload IOS Release
        uses: actions/upload-artifact@v4.6.1
        with:
         name: ios-ipa
         # refilc/build/app/outputs/flutter-apk/app-*-release.apk
         path: refilc/build/ios/archive/Runner.xcarchive/Products/Applications/*.ipa
