diff --git a/.github/workflows/create_release.yml b/.github/workflows/create_release.yml index 8455c81..82329f2 100644 --- a/.github/workflows/create_release.yml +++ b/.github/workflows/create_release.yml @@ -27,6 +27,16 @@ on: required: true type: boolean default: true + deploy-ios: + description: "Publish to App Store" + required: true + type: boolean + default: true + deploy-android: + description: "Publish to Google Play" + required: true + type: boolean + default: true release-track: description: "Release track" type: choice @@ -67,7 +77,7 @@ jobs: build-android: name: Build Android needs: [generate-release-notes] - if: ${{ always() && !failure() && !cancelled() }} + if: ${{ always() && !failure() && !cancelled() && inputs.deploy-android }} strategy: matrix: binary-type: [apk, appbundle] @@ -82,7 +92,7 @@ jobs: build-ios: name: Build iOS needs: [generate-release-notes] - if: ${{ always() && !failure() && !cancelled() }} + if: ${{ always() && !failure() && !cancelled() && inputs.deploy-ios }} uses: ./.github/workflows/build_ipa.yml secrets: inherit with: @@ -92,7 +102,7 @@ jobs: create-github-release: name: Create Github release needs: [build-android, build-ios] - if: ${{ always() && !failure() && !cancelled() }} + if: ${{ always() && !cancelled() && inputs.deploy-android}} runs-on: ubuntu-latest permissions: contents: write @@ -143,7 +153,7 @@ jobs: create-google-play-release: name: Create Google Play release needs: [build-android, build-ios] - if: ${{ always() && !failure() && !cancelled() }} + if: ${{ always() && !failure() && !cancelled() && inputs.deploy-android }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -195,7 +205,7 @@ jobs: upload-to-app-store: name: Upload to App Store needs: [build-android, build-ios] - if: ${{ always() && !failure() && !cancelled() }} + if: ${{ always() && !failure() && !cancelled() && inputs.deploy-ios }} runs-on: macos-13 steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/pr_check.yml b/.github/workflows/pr_check.yml index 2682f66..c729a20 100644 --- a/.github/workflows/pr_check.yml +++ b/.github/workflows/pr_check.yml @@ -64,3 +64,62 @@ jobs: bash ./.github/scripts/stub_iap.sh flutter pub get flutter analyze lib --fatal-infos + + platform-changes: + name: Checks for platform changes + runs-on: ubuntu-latest + outputs: + android-changed: ${{ steps.platform-changes.outputs.android-changed }} + ios-changed: ${{ steps.platform-changes.outputs.ios-changed }} + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + + - id: platform-changes + uses: dorny/paths-filter@v2 + with: + filters: | + android-changed: + - 'android/**' + - 'pubspec.yaml' + ios-changed: + - 'ios/**' + - 'pubspec.yaml' + + build-android: + name: Build Android + needs: platform-changes + if: needs.platform-changes.outputs.android-changed == 'true' + uses: ./.github/workflows/build_apk.yml + secrets: inherit + with: + binary-type: apk + flavor: prod + stage-backend: false + version: "1.0.0" + + build-ios: + name: Build iOS + needs: platform-changes + if: needs.platform-changes.outputs.ios-changed == 'true' + uses: ./.github/workflows/build_ipa.yml + secrets: inherit + with: + stage-backend: false + version: "1.0.0" + + cleanup: + name: Cleanup + if: ${{ always() }} + needs: [build-android, build-ios] + runs-on: ubuntu-latest + steps: + - name: Delete release artifacts + uses: geekyeggo/delete-artifact@v2 + with: + failOnError: false + name: | + m3_lightmeter_apk + m3_lightmeter_appbundle + m3_lightmeter_ipa diff --git a/android/gradle.properties b/android/gradle.properties index b9a9a24..6fedaef 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,4 +1,4 @@ -org.gradle.jvmargs=-Xmx1536M +org.gradle.jvmargs=-Xmx2048M android.useAndroidX=true android.enableJetifier=true android.defaults.buildfeatures.buildconfig=true