mirror of
https://github.com/vodemn/m3_lightmeter.git
synced 2025-01-31 01:30:40 +00:00
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:
parent
e7b0726504
commit
75dc9aaf13
3 changed files with 75 additions and 6 deletions
20
.github/workflows/create_release.yml
vendored
20
.github/workflows/create_release.yml
vendored
|
@ -27,6 +27,16 @@ on:
|
||||||
required: true
|
required: true
|
||||||
type: boolean
|
type: boolean
|
||||||
default: true
|
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:
|
release-track:
|
||||||
description: "Release track"
|
description: "Release track"
|
||||||
type: choice
|
type: choice
|
||||||
|
@ -67,7 +77,7 @@ jobs:
|
||||||
build-android:
|
build-android:
|
||||||
name: Build Android
|
name: Build Android
|
||||||
needs: [generate-release-notes]
|
needs: [generate-release-notes]
|
||||||
if: ${{ always() && !failure() && !cancelled() }}
|
if: ${{ always() && !failure() && !cancelled() && inputs.deploy-android }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
binary-type: [apk, appbundle]
|
binary-type: [apk, appbundle]
|
||||||
|
@ -82,7 +92,7 @@ jobs:
|
||||||
build-ios:
|
build-ios:
|
||||||
name: Build iOS
|
name: Build iOS
|
||||||
needs: [generate-release-notes]
|
needs: [generate-release-notes]
|
||||||
if: ${{ always() && !failure() && !cancelled() }}
|
if: ${{ always() && !failure() && !cancelled() && inputs.deploy-ios }}
|
||||||
uses: ./.github/workflows/build_ipa.yml
|
uses: ./.github/workflows/build_ipa.yml
|
||||||
secrets: inherit
|
secrets: inherit
|
||||||
with:
|
with:
|
||||||
|
@ -92,7 +102,7 @@ jobs:
|
||||||
create-github-release:
|
create-github-release:
|
||||||
name: Create Github release
|
name: Create Github release
|
||||||
needs: [build-android, build-ios]
|
needs: [build-android, build-ios]
|
||||||
if: ${{ always() && !failure() && !cancelled() }}
|
if: ${{ always() && !cancelled() && inputs.deploy-android}}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
|
@ -143,7 +153,7 @@ jobs:
|
||||||
create-google-play-release:
|
create-google-play-release:
|
||||||
name: Create Google Play release
|
name: Create Google Play release
|
||||||
needs: [build-android, build-ios]
|
needs: [build-android, build-ios]
|
||||||
if: ${{ always() && !failure() && !cancelled() }}
|
if: ${{ always() && !failure() && !cancelled() && inputs.deploy-android }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
@ -195,7 +205,7 @@ jobs:
|
||||||
upload-to-app-store:
|
upload-to-app-store:
|
||||||
name: Upload to App Store
|
name: Upload to App Store
|
||||||
needs: [build-android, build-ios]
|
needs: [build-android, build-ios]
|
||||||
if: ${{ always() && !failure() && !cancelled() }}
|
if: ${{ always() && !failure() && !cancelled() && inputs.deploy-ios }}
|
||||||
runs-on: macos-13
|
runs-on: macos-13
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
59
.github/workflows/pr_check.yml
vendored
59
.github/workflows/pr_check.yml
vendored
|
@ -64,3 +64,62 @@ jobs:
|
||||||
bash ./.github/scripts/stub_iap.sh
|
bash ./.github/scripts/stub_iap.sh
|
||||||
flutter pub get
|
flutter pub get
|
||||||
flutter analyze lib --fatal-infos
|
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
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
org.gradle.jvmargs=-Xmx1536M
|
org.gradle.jvmargs=-Xmx2048M
|
||||||
android.useAndroidX=true
|
android.useAndroidX=true
|
||||||
android.enableJetifier=true
|
android.enableJetifier=true
|
||||||
android.defaults.buildfeatures.buildconfig=true
|
android.defaults.buildfeatures.buildconfig=true
|
||||||
|
|
Loading…
Reference in a new issue