Added builds to CI (#208)

* Update README.md

* Set exact Flutter version for workflows

* Added stub `DefaultFirebaseOptions`

* Fixed `rm`

* Removed `rm`

* Update .gitignore

* Added readable name to ci workflow

* Build -> Development

* Update ci.yml

* Extract merged native libraries

* More descriptive run name

* Delete no longer used artifacts

* Replaced "Build ..." flow with "Create release"

* renamed other flows

* try using script for iap stub

* typo

* typo

* typo

* removed working dir

* added comment to stub_iap.sh

* checkout first

* increment build number by script

* Update increment_build_number.sh

* fixed iap repo

* stub

* updated stub script to work with tags

* depend on step conclusion

* check PR number

* run integration tests before build

* reuse Build Android workflow

* added stage backend option

* reuse Build iOS workflow

* temporeraly skip release jobs

* [ios] use distribution profile for release builds

* temporary skip tests

* typo

* checkout actions

* incremented macos runner version

* Restore GoogleService-Info.plist

* Restore firebase_app_id_file.json

* style

* separated android and ios builds

* fixed invalid workflow

* simplified release workflow tree

* fixed android keystore path

* enabled integration tests

* added option to skip integration tests

* fixed android folders...

* enabled releases

* increment build number for ios

* upload ipa to app store

* test ipa upload

* typo

* try to force ipa upload

* removed flavor from ipa artefact name

* try manual ipa upload

* switched to ubuntu for upload

* decode to repo

* Update create_release.yml

* auth with username + password

* reverted temporary settings

* typo

* disable pre-release integration tests by default

* fixed integration tests

* increased integration tests timeout

* delete ipa after upload

* delete all artifacts after the run

* fixed integration tests

* reduce integration tests timeout

* build apk with latest macos runner

* allow to skip release to one of the stores

* added build checks to PR checks

* fixed inputs naming

* increased jvm heap
This commit is contained in:
Vadim 2025-01-21 19:43:14 +01:00 committed by GitHub
parent e7b0726504
commit 75dc9aaf13
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 75 additions and 6 deletions

View file

@ -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

View file

@ -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

View file

@ -1,4 +1,4 @@
org.gradle.jvmargs=-Xmx1536M
org.gradle.jvmargs=-Xmx2048M
android.useAndroidX=true
android.enableJetifier=true
android.defaults.buildfeatures.buildconfig=true