diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml new file mode 100644 index 0000000..380cd38 --- /dev/null +++ b/.github/workflows/build-android.yml @@ -0,0 +1,91 @@ +name: Build Android + +on: + workflow_dispatch: + push: + branches: + - main + - master + paths: + - 'lib/**' + - 'android/**' + - 'pubspec.yaml' + - '.github/workflows/build-android.yml' + pull_request: + paths: + - 'lib/**' + - 'android/**' + - 'pubspec.yaml' + - '.github/workflows/build-android.yml' + +jobs: + build-android: + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - uses: actions/checkout@v3 + + - name: Setup Java + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '17' + - name: Setup Flutter + uses: subosito/flutter-action@v2 + with: + flutter-version: '3.41.5' + channel: 'stable' + + - name: Get dependencies + run: flutter pub get + + - name: Configure Gradle + run: | + mkdir -p ~/.gradle + echo "org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m" >> ~/.gradle/gradle.properties + echo "kotlin.daemon.jvmargs=-Xmx1536m" >> ~/.gradle/gradle.properties + + - name: Build Universal APK + run: flutter build apk --release + + - name: Build Split APKs + run: flutter build apk --release --split-per-abi + + - name: Upload Universal APK + uses: actions/upload-artifact@v4 + with: + name: komet-android-universal + path: build/app/outputs/flutter-apk/app-release.apk + retention-days: 30 + + - name: Upload arm64-v8a APK + uses: actions/upload-artifact@v4 + with: + name: komet-android-arm64-v8a + path: build/app/outputs/flutter-apk/app-arm64-v8a-release.apk + retention-days: 30 + + - name: Upload armeabi-v7a APK + uses: actions/upload-artifact@v4 + with: + name: komet-android-armeabi-v7a + path: build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk + retention-days: 30 + + - name: Upload x86_64 APK + uses: actions/upload-artifact@v4 + with: + name: komet-android-x86_64 + path: build/app/outputs/flutter-apk/app-x86_64-release.apk + retention-days: 30 + + - name: Build App Bundle + run: flutter build appbundle --release + + - name: Upload App Bundle artifact + uses: actions/upload-artifact@v4 + with: + name: komet-android-aab + path: build/app/outputs/bundle/release/app-release.aab + retention-days: 30