creek

The AI Image Editor of 2030

release.yml (2189B)


name: Release Android Build

on:
  push:
    tags:
      - "v*"

permissions:
  contents: write

jobs:
  build:
    name: Build APK and Release
    runs-on: ubuntu-latest

    steps:
      # 1. Checkout Code
      - name: Checkout
        uses: actions/checkout@v4

      # 2. Setup Java
      - name: Setup Java
        uses: actions/setup-java@v4
        with:
          distribution: "temurin"
          java-version: "17"

      # 3. Setup Flutter
      - name: Setup Flutter
        uses: subosito/flutter-action@v2
        with:
          channel: "stable"
          flutter-version: "3.38.x"

      # 4. Create .env file from Secrets
      - name: Create .env file
        run: echo "${{ secrets.ENV_FILE_CONTENT }}" > .env

      # 5. Decode Keystore (For Signing)
      - name: Decode Keystore
        run: |
          echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 --decode > android/app/upload-keystore.jks
          echo "storePassword=${{ secrets.KEYSTORE_PASSWORD }}" >> android/key.properties
          echo "keyPassword=${{ secrets.KEY_PASSWORD }}" >> android/key.properties
          echo "keyAlias=${{ secrets.KEY_ALIAS }}" >> android/key.properties
          echo "storeFile=upload-keystore.jks" >> android/key.properties

      # 6. Setup Python 3.8
      - name: Setup Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.8"

      # 7. Download Assets (Models)
      - name: Download Assets
        run: |
          pip install gdown
          gdown "https://drive.google.com/drive/folders/1b2cEsZao5miX7WxYmp160XkKd_lfBmPN" -O downloaded_models --folder
          mv downloaded_models/* assets/
          rm -rf downloaded_models

      # 8. Install Flutter Dependencies
      - name: Install Dependencies
        run: flutter pub get

      # 9. Build Release APK
      - name: Build APK
        run: flutter build apk --release

      # 10. Create GitHub Release
      - name: Create Release
        uses: softprops/action-gh-release@v2
        if: startsWith(github.ref, 'refs/tags/')
        with:
          files: build/app/outputs/flutter-apk/app-release.apk
          generate_release_notes: false
          body: "creekui"