# This workflow uses actions that are not certified by GitHub. # They are provided by a third-party and are governed by # separate terms of service, privacy policy, and support # documentation. name: Build prod .aab & .apk on: workflow_dispatch: jobs: build: runs-on: macos-11 timeout-minutes: 30 steps: # - uses: shaunco/ssh-agent@git-repo-mapping # with: # ssh-private-key: | # ${{ secrets.M3_LIGHTMETER_IAP_KEY }} # repo-mappings: | # github.com/vodemn/m3_lightmeter_iap - uses: actions/checkout@v3 with: submodules: recursive - uses: actions/setup-java@v2 with: distribution: "zulu" java-version: "11" - name: Restore Android keystore .jsk and .properties files env: KEYSTORE: ${{ secrets.KEYSTORE }} KEYSTORE_PROPERTIES: ${{ secrets.KEYSTORE_PROPERTIES }} run: | KEYSTORE_PATH=$RUNNER_TEMP/keystore.jks echo -n "$KEYSTORE" | base64 --decode --output $KEYSTORE_PATH cp $KEYSTORE_PATH ./android/app KEYSTORE_PROPERTIES_PATH=$RUNNER_TEMP/key.properties echo -n "$KEYSTORE_PROPERTIES" | base64 --decode --output $KEYSTORE_PROPERTIES_PATH cp $KEYSTORE_PROPERTIES_PATH ./android - name: Restore android/app/google-services.json env: GOOGLE_SERVICES_JSON_ANDROID: ${{ secrets.GOOGLE_SERVICES_JSON_ANDROID }} run: | GOOGLE_SERVICES_JSON_ANDROID_PATH=$RUNNER_TEMP/google-services.json echo -n "$GOOGLE_SERVICES_JSON_ANDROID" | base64 --decode --output $GOOGLE_SERVICES_JSON_ANDROID_PATH cp $GOOGLE_SERVICES_JSON_ANDROID_PATH ./android/app - name: Restore firebase_options.dart env: FIREBASE_OPTIONS: ${{ secrets.FIREBASE_OPTIONS }} run: | FIREBASE_OPTIONS_PATH=$RUNNER_TEMP/firebase_options.dart echo -n "$FIREBASE_OPTIONS" | base64 --decode --output $FIREBASE_OPTIONS_PATH cp $FIREBASE_OPTIONS_PATH ./lib - name: Install Flutter uses: subosito/flutter-action@v2 with: channel: "stable" - name: Prepare flutter project run: | flutter --version flutter pub get flutter pub run intl_utils:generate - name: Build apk run: flutter build apk --release --flavor prod --dart-define cameraPreviewAspectRatio=2/3 -t lib/main_prod.dart - name: Upload apk to artifacts uses: actions/upload-artifact@v3 with: name: m3_lightmeter_apk path: build/app/outputs/flutter-apk/app-prod-release.apk - name: Build appbundle run: flutter build appbundle --release --flavor prod --dart-define cameraPreviewAspectRatio=2/3 -t lib/main_prod.dart - name: Upload app bundle to artifacts uses: actions/upload-artifact@v3 with: name: m3_lightmeter_bundle path: build/app/outputs/bundle/prodRelease/app-prod-release.aab - name: Zip merged_native_libs folder uses: montudor/action-zip@v1 with: args: zip -qq -r merged_native_libs.zip build/app/intermediates/merged_native_libs/prodRelease/out/lib/ - name: Upload merged_native_libs to artifacts uses: actions/upload-artifact@v3 with: name: merged_native_libs path: merged_native_libs.zip