name: Android Build on: push: branches: ["*"] paths-ignore: - '.devcontainer/**' - '.github/workflows/ios.yml' - '.github/workflows/linux.yml' - '.github/workflows/macos.yml' - '.github/workflows/web.yml' - '.github/workflows/windows.yml' - 'ios/**' - 'linux/**' - 'macos/**' - 'web/**' - 'windows/**' - '.gitignore' - '.gitmodules' - 'README.md' - 'LICENSE' jobs: android: runs-on: ubuntu-latest steps: - name: Check out uses: actions/checkout@v4 - name: Setup flutter uses: subosito/flutter-action@v2 with: channel: stable - name: set up JDK 21 uses: actions/setup-java@v4 with: java-version: '21' distribution: 'adopt' cache: gradle - name: Increase Gradle memory settings run: | echo "" >> android/gradle.properties echo "org.gradle.jvmargs=-Xmx8192m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8" >> android/gradle.properties echo "android.enableR8=true" >> android/gradle.properties - name: Clean workspace run: flutter clean - name: Decode Keystore env: ENCODED_STRING: ${{ secrets.SIGNING_STORE_BASE64 }} run: echo $ENCODED_STRING | base64 -di > android/app/keystore.jks - name: Build apk run: flutter build apk --release --split-per-abi env: CI: true SIGNING_KEY_ALIAS: release SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }} SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD }} FLUTTER_BUILD_ARGS: "--extra-gen-snapshot-options=--vm-args=-Xmx8G" - name: Upload artifact uses: actions/upload-artifact@v4 with: name: app-release path: build/app/outputs/flutter-apk/*