222 lines
6.7 KiB
YAML
222 lines
6.7 KiB
YAML
# Reusable script for building the Flutter app
|
|
flutter-build-script: &flutter-build-script
|
|
name: 👷 Build Flutter App
|
|
script: |
|
|
flutter pub get
|
|
flutter pub run build_runner build --delete-conflicting-outputs
|
|
|
|
android-app-build-script: &android-app-build-script
|
|
name: 🤖 Build Android App
|
|
script: |
|
|
# Build Android
|
|
flutter build appbundle --flavor $FLAVOR
|
|
|
|
ios-app-build-script: &ios-app-build-script
|
|
name: 🍎 Build iOS App
|
|
script: |
|
|
# Build iOS
|
|
flutter build ipa --flavor $FLAVOR
|
|
|
|
# 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" \
|
|
--app $FIREBASE_APP_ID_ANDROID \
|
|
--release-notes "Build $FCI_BUILD_NUMBER" \
|
|
--groups "$FIREBASE_TESTER_GROUPS" \
|
|
--token $FIREBASE_TOKEN
|
|
|
|
# Reusable script for distributing iOS to Firebase
|
|
distribute-ios-script: &distribute-ios-script
|
|
name: 🚛🍎 Distribute iOS to Firebase App Distribution
|
|
script: |
|
|
# Distribute iOS
|
|
firebase appdistribution:distribute "build/ios/ipa/app.ipa" \
|
|
--app $FIREBASE_APP_ID_IOS \
|
|
--release-notes "Build $FCI_BUILD_NUMBER" \
|
|
--groups "$FIREBASE_TESTER_GROUPS" \
|
|
--token $FIREBASE_TOKEN
|
|
|
|
workflows:
|
|
# =================================================================================
|
|
# Base workflow for client_app
|
|
# =================================================================================
|
|
client-app-base: &client-app-base
|
|
name: Client App Base
|
|
working_directory: mobile-apps/client-app
|
|
instance_type: mac_mini_m2
|
|
max_build_duration: 60
|
|
environment:
|
|
flutter: stable
|
|
xcode: latest
|
|
cocoapods: default
|
|
cache:
|
|
cache_paths:
|
|
- $HOME/.pub-cache
|
|
- $FCI_BUILD_DIR/mobile-apps/client-app/build
|
|
- $FCI_BUILD_DIR/mobile-apps/client-app/.dart_tool
|
|
|
|
# =================================================================================
|
|
# Base workflow for staff_app
|
|
# =================================================================================
|
|
staff-app-base: &staff-app-base
|
|
name: Staff App Base
|
|
working_directory: mobile-apps/staff-app
|
|
instance_type: mac_mini_m2
|
|
max_build_duration: 60
|
|
environment:
|
|
flutter: stable
|
|
xcode: latest
|
|
cocoapods: default
|
|
cache:
|
|
cache_paths:
|
|
- $HOME/.pub-cache
|
|
- $FCI_BUILD_DIR/mobile-apps/staff-app/build
|
|
- $FCI_BUILD_DIR/mobile-apps/staff-app/.dart_tool
|
|
|
|
# =================================================================================
|
|
# Client App Workflows - Android
|
|
# =================================================================================
|
|
client-app-dev-android:
|
|
<<: *client-app-base
|
|
name: 🚛🤖 Client App Dev (Android App Distribution)
|
|
environment:
|
|
groups:
|
|
- client_app_dev_credentials
|
|
scripts:
|
|
- *flutter-build-script
|
|
- *android-app-build-script
|
|
- *distribute-android-script
|
|
|
|
client-app-staging-android:
|
|
<<: *client-app-base
|
|
name: 🚛🤖 Client App Staging (Android App Distribution)
|
|
environment:
|
|
groups:
|
|
- client_app_staging_credentials
|
|
scripts:
|
|
- *flutter-build-script
|
|
- *android-app-build-script
|
|
- *distribute-android-script
|
|
|
|
client-app-prod-android:
|
|
<<: *client-app-base
|
|
name: 🚛🤖 Client App Prod (Android App Distribution)
|
|
environment:
|
|
groups:
|
|
- client_app_prod_credentials
|
|
scripts:
|
|
- *flutter-build-script
|
|
- *android-app-build-script
|
|
- *distribute-android-script
|
|
|
|
# =================================================================================
|
|
# Client App Workflows - iOS
|
|
# =================================================================================
|
|
client-app-dev-ios:
|
|
<<: *client-app-base
|
|
name: 🚛🍎 Client App Dev (iOS App Distribution)
|
|
environment:
|
|
groups:
|
|
- client_app_dev_credentials
|
|
scripts:
|
|
- *flutter-build-script
|
|
- *ios-app-build-script
|
|
- *distribute-ios-script
|
|
|
|
client-app-staging-ios:
|
|
<<: *client-app-base
|
|
name: 🚛🍎 Client App Staging (iOS App Distribution)
|
|
environment:
|
|
groups:
|
|
- client_app_staging_credentials
|
|
scripts:
|
|
- *flutter-build-script
|
|
- *ios-app-build-script
|
|
- *distribute-ios-script
|
|
|
|
client-app-prod-ios:
|
|
<<: *client-app-base
|
|
name: 🚛🍎 Client App Prod (iOS App Distribution)
|
|
environment:
|
|
groups:
|
|
- client_app_prod_credentials
|
|
scripts:
|
|
- *flutter-build-script
|
|
- *ios-app-build-script
|
|
- *distribute-ios-script
|
|
|
|
# =================================================================================
|
|
# Staff App Workflows - Android
|
|
# =================================================================================
|
|
staff-app-dev-android:
|
|
<<: *staff-app-base
|
|
name: 🤖👨🍳 Staff App Dev (Android)
|
|
environment:
|
|
groups:
|
|
- staff_app_dev_credentials
|
|
scripts:
|
|
- *flutter-build-script
|
|
- *android-app-build-script
|
|
- *distribute-android-script
|
|
|
|
staff-app-staging-android:
|
|
<<: *staff-app-base
|
|
name: 🤖👨🍳 Staff App Staging (Android)
|
|
environment:
|
|
groups:
|
|
- staff_app_staging_credentials
|
|
scripts:
|
|
- *flutter-build-script
|
|
- *android-app-build-script
|
|
- *distribute-android-script
|
|
|
|
staff-app-prod-android:
|
|
<<: *staff-app-base
|
|
name: 🤖👨🍳 Staff App Prod (Android)
|
|
environment:
|
|
groups:
|
|
- staff_app_prod_credentials
|
|
scripts:
|
|
- *flutter-build-script
|
|
- *android-app-build-script
|
|
- *distribute-android-script
|
|
|
|
# =================================================================================
|
|
# Staff App Workflows - iOS
|
|
# =================================================================================
|
|
staff-app-dev-ios:
|
|
<<: *staff-app-base
|
|
name: 🍎👨🍳 Staff App Dev (iOS)
|
|
environment:
|
|
groups:
|
|
- staff_app_dev_credentials
|
|
scripts:
|
|
- *flutter-build-script
|
|
- *ios-app-build-script
|
|
- *distribute-ios-script
|
|
|
|
staff-app-staging-ios:
|
|
<<: *staff-app-base
|
|
name: 🍎👨🍳 Staff App Staging (iOS)
|
|
environment:
|
|
groups:
|
|
- staff_app_staging_credentials
|
|
scripts:
|
|
- *flutter-build-script
|
|
- *ios-app-build-script
|
|
- *distribute-ios-script
|
|
|
|
staff-app-prod-ios:
|
|
<<: *staff-app-base
|
|
name: 🍎👨🍳 Staff App Prod (iOS)
|
|
environment:
|
|
groups:
|
|
- staff_app_prod_credentials
|
|
scripts:
|
|
- *flutter-build-script
|
|
- *ios-app-build-script
|
|
- *distribute-ios-script
|
|
|