Refactor build scripts and improve artifact handling for client and staff apps
This commit is contained in:
@@ -2,29 +2,37 @@
|
|||||||
client-app-android-apk-build-script: &client-app-android-apk-build-script
|
client-app-android-apk-build-script: &client-app-android-apk-build-script
|
||||||
name: 👷🤖 Build Client App APK (Android)
|
name: 👷🤖 Build Client App APK (Android)
|
||||||
script: |
|
script: |
|
||||||
make -C ../.. mobile-client-build ENV=$ENV PLATFORM=android BUILD_TYPE=apk
|
make mobile-client-build PLATFORM=apk
|
||||||
|
|
||||||
client-app-ios-build-script: &client-app-ios-build-script
|
client-app-ios-build-script: &client-app-ios-build-script
|
||||||
name: 👷🍎 Build Client App (iOS)
|
name: 👷🍎 Build Client App (iOS)
|
||||||
script: |
|
script: |
|
||||||
make -C ../.. mobile-client-build ENV=$ENV PLATFORM=ios
|
make mobile-client-build PLATFORM=ios
|
||||||
|
|
||||||
staff-app-android-apk-build-script: &staff-app-android-apk-build-script
|
staff-app-android-apk-build-script: &staff-app-android-apk-build-script
|
||||||
name: 👷🤖 Build Staff App APK (Android)
|
name: 👷🤖 Build Staff App APK (Android)
|
||||||
script: |
|
script: |
|
||||||
make -C ../.. mobile-staff-build ENV=$ENV PLATFORM=android BUILD_TYPE=apk
|
make mobile-staff-build PLATFORM=apk
|
||||||
|
|
||||||
staff-app-ios-build-script: &staff-app-ios-build-script
|
staff-app-ios-build-script: &staff-app-ios-build-script
|
||||||
name: 👷🍎 Build Staff App (iOS)
|
name: 👷🍎 Build Staff App (iOS)
|
||||||
script: |
|
script: |
|
||||||
make -C ../.. mobile-staff-build ENV=$ENV PLATFORM=ios
|
make mobile-staff-build PLATFORM=ios
|
||||||
|
|
||||||
# Reusable script for distributing Android to Firebase
|
# Reusable script for distributing Android to Firebase
|
||||||
distribute-android-script: &distribute-android-script
|
distribute-android-script: &distribute-android-script
|
||||||
name: 🚛🤖 Distribute Android to Firebase App Distribution
|
name: 🚛🤖 Distribute Android to Firebase App Distribution
|
||||||
script: |
|
script: |
|
||||||
# Distribute Android APK
|
# Distribute Android APK
|
||||||
firebase appdistribution:distribute "build/app/outputs/flutter-apk/app-${ENV}-release.apk" \
|
# Note: Using wildcards to catch app-release.apk
|
||||||
|
APP_PATH=$(find apps/mobile/apps -name "app-release.apk" | head -n 1)
|
||||||
|
if [ -z "$APP_PATH" ]; then
|
||||||
|
echo "No APK found!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "Found APK at: $APP_PATH"
|
||||||
|
|
||||||
|
firebase appdistribution:distribute "$APP_PATH" \
|
||||||
--app $FIREBASE_APP_ID_ANDROID \
|
--app $FIREBASE_APP_ID_ANDROID \
|
||||||
--release-notes "Build $FCI_BUILD_NUMBER - Environment: $ENV" \
|
--release-notes "Build $FCI_BUILD_NUMBER - Environment: $ENV" \
|
||||||
--groups "$FIREBASE_TESTER_GROUPS" \
|
--groups "$FIREBASE_TESTER_GROUPS" \
|
||||||
@@ -35,7 +43,14 @@ distribute-ios-script: &distribute-ios-script
|
|||||||
name: 🚛🍎 Distribute iOS to Firebase App Distribution
|
name: 🚛🍎 Distribute iOS to Firebase App Distribution
|
||||||
script: |
|
script: |
|
||||||
# Distribute iOS
|
# Distribute iOS
|
||||||
firebase appdistribution:distribute "build/ios/ipa/app.ipa" \
|
IPA_PATH=$(find apps/mobile/apps -name "*.ipa" | head -n 1)
|
||||||
|
if [ -z "$IPA_PATH" ]; then
|
||||||
|
echo "No IPA found!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "Found IPA at: $IPA_PATH"
|
||||||
|
|
||||||
|
firebase appdistribution:distribute "$IPA_PATH" \
|
||||||
--app $FIREBASE_APP_ID_IOS \
|
--app $FIREBASE_APP_ID_IOS \
|
||||||
--release-notes "Build $FCI_BUILD_NUMBER - Environment: $ENV" \
|
--release-notes "Build $FCI_BUILD_NUMBER - Environment: $ENV" \
|
||||||
--groups "$FIREBASE_TESTER_GROUPS" \
|
--groups "$FIREBASE_TESTER_GROUPS" \
|
||||||
@@ -47,36 +62,48 @@ workflows:
|
|||||||
# =================================================================================
|
# =================================================================================
|
||||||
client-app-base: &client-app-base
|
client-app-base: &client-app-base
|
||||||
name: Client App Base
|
name: Client App Base
|
||||||
working_directory: apps/mobile-client
|
working_directory: .
|
||||||
instance_type: mac_mini_m2
|
instance_type: mac_mini_m2
|
||||||
max_build_duration: 60
|
max_build_duration: 60
|
||||||
environment:
|
environment:
|
||||||
flutter: stable
|
flutter: stable
|
||||||
xcode: latest
|
xcode: latest
|
||||||
cocoapods: default
|
cocoapods: default
|
||||||
|
artifacts:
|
||||||
|
- apps/mobile/apps/client/build/app/outputs/flutter-apk/*.apk
|
||||||
|
- apps/mobile/apps/client/build/ios/ipa/*.ipa
|
||||||
|
- apps/mobile/apps/client/build/app/outputs/bundle/release/app-release.aab
|
||||||
|
- /tmp/xcodebuild_logs/*.log
|
||||||
|
- flutter_drive.log
|
||||||
cache:
|
cache:
|
||||||
cache_paths:
|
cache_paths:
|
||||||
- $HOME/.pub-cache
|
- $HOME/.pub-cache
|
||||||
- $FCI_BUILD_DIR/apps/mobile-client/build
|
- $FCI_BUILD_DIR/apps/mobile/apps/client/build
|
||||||
- $FCI_BUILD_DIR/apps/mobile-client/.dart_tool
|
- $FCI_BUILD_DIR/apps/mobile/apps/client/.dart_tool
|
||||||
|
|
||||||
# =================================================================================
|
# =================================================================================
|
||||||
# Base workflow for staff_app
|
# Base workflow for staff_app
|
||||||
# =================================================================================
|
# =================================================================================
|
||||||
staff-app-base: &staff-app-base
|
staff-app-base: &staff-app-base
|
||||||
name: Staff App Base
|
name: Staff App Base
|
||||||
working_directory: apps/mobile-staff
|
working_directory: .
|
||||||
instance_type: mac_mini_m2
|
instance_type: mac_mini_m2
|
||||||
max_build_duration: 60
|
max_build_duration: 60
|
||||||
environment:
|
environment:
|
||||||
flutter: stable
|
flutter: stable
|
||||||
xcode: latest
|
xcode: latest
|
||||||
cocoapods: default
|
cocoapods: default
|
||||||
|
artifacts:
|
||||||
|
- apps/mobile/apps/staff/build/app/outputs/flutter-apk/*.apk
|
||||||
|
- apps/mobile/apps/staff/build/ios/ipa/*.ipa
|
||||||
|
- apps/mobile/apps/staff/build/app/outputs/bundle/release/app-release.aab
|
||||||
|
- /tmp/xcodebuild_logs/*.log
|
||||||
|
- flutter_drive.log
|
||||||
cache:
|
cache:
|
||||||
cache_paths:
|
cache_paths:
|
||||||
- $HOME/.pub-cache
|
- $HOME/.pub-cache
|
||||||
- $FCI_BUILD_DIR/apps/mobile-staff/build
|
- $FCI_BUILD_DIR/apps/mobile/apps/staff/build
|
||||||
- $FCI_BUILD_DIR/apps/mobile-staff/.dart_tool
|
- $FCI_BUILD_DIR/apps/mobile/apps/staff/.dart_tool
|
||||||
|
|
||||||
# =================================================================================
|
# =================================================================================
|
||||||
# Client App Workflows - Android
|
# Client App Workflows - Android
|
||||||
|
|||||||
Reference in New Issue
Block a user