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"