|
14 | 14 | steps: |
15 | 15 | - uses: actions/checkout@v4 |
16 | 16 | - name: Setup Java |
17 | | - uses: actions/setup-java@v3 |
| 17 | + uses: actions/setup-java@v4 |
18 | 18 | with: |
19 | 19 | distribution: 'zulu' |
20 | 20 | java-version: '17.x' |
|
26 | 26 | cache: true |
27 | 27 | - name: Get dependencies |
28 | 28 | run: flutter pub get |
| 29 | + - name: Configure Gradle for CI |
| 30 | + run: | |
| 31 | + # Increase heap size for Gradle daemon |
| 32 | + echo "org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError" >> android/gradle.properties |
| 33 | + # Enable Gradle daemon and configure for CI |
| 34 | + echo "org.gradle.daemon=false" >> android/gradle.properties |
| 35 | + echo "org.gradle.parallel=true" >> android/gradle.properties |
| 36 | + echo "org.gradle.caching=true" >> android/gradle.properties |
| 37 | + # Disable incremental compilation to save memory |
| 38 | + echo "kotlin.incremental=false" >> android/gradle.properties |
29 | 39 | - name: Download Android keystore |
30 | 40 | id: android_keystore |
31 | 41 | |
|
39 | 49 | echo "keyPassword=${{ secrets.KEY_PASSWORD }}" >> android/key.properties |
40 | 50 | echo "keyAlias=${{ secrets.KEY_ALIAS }}" >> android/key.properties |
41 | 51 | - name: Build APK (split per ABI) |
42 | | - run: flutter build apk --split-per-abi --flavor prod |
| 52 | + run: flutter build apk --split-per-abi --flavor prod --release |
| 53 | + env: |
| 54 | + GRADLE_OPTS: '-Xmx4g -Dfile.encoding=UTF-8' |
43 | 55 | - name: Archive build artifacts |
44 | 56 | uses: actions/upload-artifact@v4 |
45 | 57 | with: |
|
48 | 60 | build/app/outputs/flutter-apk/app-arm64-v8a-prod-release.apk |
49 | 61 | build/app/outputs/flutter-apk/app-armeabi-v7a-prod-release.apk |
50 | 62 | build/app/outputs/flutter-apk/app-x86_64-prod-release.apk |
51 | | -
|
52 | 63 | release: |
53 | 64 | name: Create GitHub Release |
54 | 65 | needs: build |
|
0 commit comments