From a30b0a17498d70c207f1a50f08498ad5d25248c1 Mon Sep 17 00:00:00 2001 From: Vadim <44135514+vodemn@users.noreply.github.com> Date: Sun, 11 Feb 2024 20:47:37 +0100 Subject: [PATCH] increased ipa timeout --- .github/workflows/build_apk.yml | 103 ++++++++++++++++---------------- .github/workflows/build_ipa.yml | 2 +- 2 files changed, 52 insertions(+), 53 deletions(-) diff --git a/.github/workflows/build_apk.yml b/.github/workflows/build_apk.yml index 5ad20d8..5813522 100644 --- a/.github/workflows/build_apk.yml +++ b/.github/workflows/build_apk.yml @@ -3,19 +3,29 @@ # separate terms of service, privacy policy, and support # documentation. -name: Build Prod .ipa +name: Build .apk on: workflow_dispatch: - -env: - FLAVOR: "prod" + inputs: + flavor: + description: 'Flavor' + type: choice + required: true + options: + - dev + - prod + default: 'dev' + include-iap: + type: boolean + description: Include IAP package + default: true jobs: build: - name: Build .ipa + name: Build .apk runs-on: macos-11 - timeout-minutes: 20 + timeout-minutes: 15 steps: - uses: actions/checkout@v3 with: @@ -23,77 +33,66 @@ jobs: - name: Connect private iap package uses: webfactory/ssh-agent@v0.8.0 + if: ${{ inputs.include-iap }} with: ssh-private-key: ${{ secrets.M3_LIGHTMETER_IAP_KEY }} + - name: Override iap package with stub + if: ${{ !inputs.include-iap }} + run: bash ./.github/scripts/stub_iap.sh + - uses: actions/setup-java@v2 with: distribution: "zulu" java-version: "11" - - name: Install the Apple certificate and provisioning profile + - name: Restore Android keystore .jsk and .properties files env: - APP_STORE_P12: ${{ secrets.APP_STORE_P12 }} - APP_STORE_P12_PASSWORD: ${{ secrets.APP_STORE_P12_PASSWORD }} - APP_STORE_PROVISION_PROD: ${{ secrets.APP_STORE_PROVISION_PROD }} - KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} + KEYSTORE: ${{ secrets.KEYSTORE }} + KEYSTORE_PROPERTIES: ${{ secrets.KEYSTORE_PROPERTIES }} run: | - # create variables - CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 - PROVISION_PATH=$RUNNER_TEMP/build_provision.mobileprovision - KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db + 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 - # import certificate and provisioning profile from secrets - echo -n "$APP_STORE_P12" | base64 --decode -o $CERTIFICATE_PATH - echo -n "$APP_STORE_PROVISION_PROD" | base64 --decode -o $PROVISION_PATH - - # create temporary keychain - security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH - security set-keychain-settings -lut 21600 $KEYCHAIN_PATH - security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH - - # import certificate to keychain - security import $CERTIFICATE_PATH -P "$APP_STORE_P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH - security list-keychain -d user -s $KEYCHAIN_PATH - - # apply provisioning profile - mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles - cp $PROVISION_PATH ~/Library/MobileDevice/Provisioning\ Profiles - - - name: Restore ios/Runner/ExportOptions.plist - run: bash .github/scripts/restore_from_base64.sh "${{ secrets.APP_STORE_EXPORT_OPTIONS }}" "ios/Runner/ExportOptions.plist" + - 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 - run: bash .github/scripts/restore_from_base64.sh "${{ secrets.FIREBASE_OPTIONS }}" "lib/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" - flutter-version: "3.10.0" + flutter-version: '3.10.0' - name: Prepare flutter project - run: | + run: | flutter --version flutter pub get flutter pub run intl_utils:generate - - name: Build .ipa - run: | - flutter build ipa \ - --release \ - --flavor $FLAVOR \ - --target lib/main_$FLAVOR.dart \ - --export-options-plist=ios/Runner/ExportOptions.plist + - name: Build .apk + env: + FLAVOR: ${{ github.event.inputs.flavor }} + run: flutter build apk --release --flavor $FLAVOR -t lib/main_$FLAVOR.dart - name: Upload artifact uses: actions/upload-artifact@v3 with: - name: m3_lightmeter_$FLAVOR_ipa - path: build/ios/ipa/lightmeter.ipa - - - name: Clean up keychain and provisioning profile - if: ${{ always() }} - run: | - security delete-keychain $RUNNER_TEMP/app-signing.keychain-db - rm ~/Library/MobileDevice/Provisioning\ Profiles/build_provision.mobileprovision + name: m3_lightmeter_${{ github.event.inputs.flavor }}_apk + path: build/app/outputs/flutter-apk/app-${{ github.event.inputs.flavor }}-release.apk diff --git a/.github/workflows/build_ipa.yml b/.github/workflows/build_ipa.yml index 5ad20d8..faec213 100644 --- a/.github/workflows/build_ipa.yml +++ b/.github/workflows/build_ipa.yml @@ -15,7 +15,7 @@ jobs: build: name: Build .ipa runs-on: macos-11 - timeout-minutes: 20 + timeout-minutes: 60 steps: - uses: actions/checkout@v3 with: