diff --git a/Makefile b/Makefile index bfaa57f6..5e32e697 100644 --- a/Makefile +++ b/Makefile @@ -69,11 +69,11 @@ help: @echo "" @echo " --- MOBILE APP DEVELOPMENT ---" @echo " make mobile-client-install - Install dependencies for client app" - @echo " make mobile-client-dev - Run client app in development mode" + @echo " make mobile-client-dev - Run client app in dev mode" @echo " make mobile-client-build - Build client app (requires ENV & PLATFORM, optional BUILD_TYPE=apk)" @echo "" @echo " make mobile-staff-install - Install dependencies for staff app" - @echo " make mobile-staff-dev - Run staff app in development mode" + @echo " make mobile-staff-dev - Run staff app in dev mode" @echo " make mobile-staff-build - Build staff app (requires ENV & PLATFORM, optional BUILD_TYPE=apk)" @echo "" @echo " --- DEPLOYMENT ---" @@ -332,7 +332,7 @@ dataconnect-deploy: # --- Mobile App Development --- FLAVOR := ifeq ($(ENV),dev) - FLAVOR := development + FLAVOR := dev else ifeq ($(ENV),staging) FLAVOR := staging else ifeq ($(ENV),prod) @@ -346,9 +346,9 @@ mobile-client-install: @cd mobile-apps/client-app && $(FLUTTER) pub get mobile-client-dev: - @echo "--> Running client app in development mode..." + @echo "--> Running client app in dev mode..." @echo "--> If using VS code, use the debug configurations" - @cd mobile-apps/client-app && $(FLUTTER) run --flavor development -t lib/main_dev.dart + @cd mobile-apps/client-app && $(FLUTTER) run --flavor dev -t lib/main_dev.dart mobile-client-build: @if [ "$(ENV)" != "dev" ] && [ "$(ENV)" != "staging" ] && [ "$(ENV)" != "prod" ]; then \ @@ -373,9 +373,9 @@ mobile-staff-install: @cd mobile-apps/staff-app && $(FLUTTER) pub get mobile-staff-dev: - @echo "--> Running staff app in development mode..." + @echo "--> Running staff app in dev mode..." @echo "--> If using VS code, use the debug configurations" - @cd mobile-apps/staff-app && $(FLUTTER) run --flavor development -t lib/main_dev.dart + @cd mobile-apps/staff-app && $(FLUTTER) run --flavor dev -t lib/main_dev.dart mobile-staff-build: @if [ "$(ENV)" != "dev" ] && [ "$(ENV)" != "staging" ] && [ "$(ENV)" != "prod" ]; then \ diff --git a/codemagic.yaml b/codemagic.yaml index bb9fbe0e..fcbce8cd 100644 --- a/codemagic.yaml +++ b/codemagic.yaml @@ -1,30 +1,32 @@ # Reusable script for building the Flutter app -flutter-build-script: &flutter-build-script - name: 👷 Build Flutter App +client-app-android-apk-build-script: &client-app-android-apk-build-script + name: 👷🤖 Build Client App APK (Android) script: | - flutter pub get - flutter pub run build_runner build --delete-conflicting-outputs + make -C ../.. mobile-client-build ENV=$ENV PLATFORM=android BUILD_TYPE=apk -android-app-build-script: &android-app-build-script - name: 🤖 Build Android App +client-app-ios-build-script: &client-app-ios-build-script + name: 👷🍎 Build Client App (iOS) script: | - # Build Android - flutter build appbundle --flavor $FLAVOR + make -C ../.. mobile-client-build ENV=$ENV PLATFORM=ios -ios-app-build-script: &ios-app-build-script - name: 🍎 Build iOS App +staff-app-android-apk-build-script: &staff-app-android-apk-build-script + name: 👷🤖 Build Staff App APK (Android) script: | - # Build iOS - flutter build ipa --flavor $FLAVOR + make -C ../.. mobile-staff-build ENV=$ENV PLATFORM=android BUILD_TYPE=apk + +staff-app-ios-build-script: &staff-app-ios-build-script + name: 👷🍎 Build Staff App (iOS) + script: | + make -C ../.. mobile-staff-build ENV=$ENV PLATFORM=ios # Reusable script for distributing Android to Firebase distribute-android-script: &distribute-android-script name: 🚛🤖 Distribute Android to Firebase App Distribution script: | - # Distribute Android - firebase appdistribution:distribute "build/app/outputs/bundle/${FLAVOR}Release/app-${FLAVOR}-release.aab" \ + # Distribute Android APK + firebase appdistribution:distribute "build/app/outputs/flutter-apk/app-${ENV}-release.apk" \ --app $FIREBASE_APP_ID_ANDROID \ - --release-notes "Build $FCI_BUILD_NUMBER" \ + --release-notes "Build $FCI_BUILD_NUMBER - Environment: $ENV" \ --groups "$FIREBASE_TESTER_GROUPS" \ --token $FIREBASE_TOKEN @@ -35,7 +37,7 @@ distribute-ios-script: &distribute-ios-script # Distribute iOS firebase appdistribution:distribute "build/ios/ipa/app.ipa" \ --app $FIREBASE_APP_ID_IOS \ - --release-notes "Build $FCI_BUILD_NUMBER" \ + --release-notes "Build $FCI_BUILD_NUMBER - Environment: $ENV" \ --groups "$FIREBASE_TESTER_GROUPS" \ --token $FIREBASE_TOKEN @@ -85,9 +87,10 @@ workflows: environment: groups: - client_app_dev_credentials + vars: + ENV: dev scripts: - - *flutter-build-script - - *android-app-build-script + - *client-app-android-apk-build-script - *distribute-android-script client-app-staging-android: @@ -96,9 +99,10 @@ workflows: environment: groups: - client_app_staging_credentials + vars: + ENV: staging scripts: - - *flutter-build-script - - *android-app-build-script + - *client-app-android-apk-build-script - *distribute-android-script client-app-prod-android: @@ -107,9 +111,10 @@ workflows: environment: groups: - client_app_prod_credentials + vars: + ENV: prod scripts: - - *flutter-build-script - - *android-app-build-script + - *client-app-android-apk-build-script - *distribute-android-script # ================================================================================= @@ -121,9 +126,10 @@ workflows: environment: groups: - client_app_dev_credentials + vars: + ENV: dev scripts: - - *flutter-build-script - - *ios-app-build-script + - *client-app-ios-build-script - *distribute-ios-script client-app-staging-ios: @@ -132,9 +138,10 @@ workflows: environment: groups: - client_app_staging_credentials + vars: + ENV: staging scripts: - - *flutter-build-script - - *ios-app-build-script + - *client-app-ios-build-script - *distribute-ios-script client-app-prod-ios: @@ -143,9 +150,10 @@ workflows: environment: groups: - client_app_prod_credentials + vars: + ENV: prod scripts: - - *flutter-build-script - - *ios-app-build-script + - *client-app-ios-build-script - *distribute-ios-script # ================================================================================= @@ -153,35 +161,38 @@ workflows: # ================================================================================= staff-app-dev-android: <<: *staff-app-base - name: 🤖👨‍🍳 Staff App Dev (Android App Distribution) + name: 🚛🤖👨‍🍳 Staff App Dev (Android App Distribution) environment: groups: - staff_app_dev_credentials + vars: + ENV: dev scripts: - - *flutter-build-script - - *android-app-build-script + - *staff-app-android-apk-build-script - *distribute-android-script staff-app-staging-android: <<: *staff-app-base - name: 🤖👨‍🍳 Staff App Staging (Android App Distribution) + name: 🚛🤖👨‍🍳 Staff App Staging (Android App Distribution) environment: groups: - staff_app_staging_credentials + vars: + ENV: staging scripts: - - *flutter-build-script - - *android-app-build-script + - *staff-app-android-apk-build-script - *distribute-android-script staff-app-prod-android: <<: *staff-app-base - name: 🤖👨‍🍳 Staff App Prod (Android App Distribution) + name: 🚛🤖👨‍🍳 Staff App Prod (Android App Distribution) environment: groups: - staff_app_prod_credentials + vars: + ENV: prod scripts: - - *flutter-build-script - - *android-app-build-script + - *staff-app-android-apk-build-script - *distribute-android-script # ================================================================================= @@ -189,33 +200,37 @@ workflows: # ================================================================================= staff-app-dev-ios: <<: *staff-app-base - name: 🍎👨‍🍳 Staff App Dev (iOS App Distribution) + name: 🚛🍎👨‍🍳 Staff App Dev (iOS App Distribution) environment: groups: - staff_app_dev_credentials + vars: + ENV: dev scripts: - - *flutter-build-script - - *ios-app-build-script + - *staff-app-ios-build-script - *distribute-ios-script staff-app-staging-ios: <<: *staff-app-base - name: 🍎👨‍🍳 Staff App Staging (iOS App Distribution) + name: 🚛🍎👨‍🍳 Staff App Staging (iOS App Distribution) environment: groups: - staff_app_staging_credentials + vars: + ENV: staging scripts: - - *flutter-build-script - - *ios-app-build-script + - *staff-app-ios-build-script - *distribute-ios-script staff-app-prod-ios: <<: *staff-app-base - name: 🍎👨‍🍳 Staff App Prod (iOS App Distribution) + name: 🚛🍎👨‍🍳 Staff App Prod (iOS App Distribution) environment: groups: - staff_app_prod_credentials + vars: + ENV: prod scripts: - - *flutter-build-script - - *ios-app-build-script + - *staff-app-ios-build-script - *distribute-ios-script + \ No newline at end of file