feat: update launch configurations and build scripts for staging and production environments
This commit is contained in:
96
.vscode/launch.json
vendored
96
.vscode/launch.json
vendored
@@ -1,41 +1,127 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
// ===================== Client App =====================
|
||||
{
|
||||
"name": "Client (Dev) - Android",
|
||||
"name": "Client [DEV] - Android",
|
||||
"request": "launch",
|
||||
"type": "dart",
|
||||
"program": "apps/mobile/apps/client/lib/main.dart",
|
||||
"args": [
|
||||
"--flavor", "dev",
|
||||
"--dart-define-from-file=${workspaceFolder}/apps/mobile/config.dev.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Client (Dev) - iOS",
|
||||
"name": "Client [DEV] - iOS",
|
||||
"request": "launch",
|
||||
"type": "dart",
|
||||
"program": "apps/mobile/apps/client/lib/main.dart",
|
||||
"args": [
|
||||
"--flavor", "dev",
|
||||
"--dart-define-from-file=${workspaceFolder}/apps/mobile/config.dev.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Staff (Dev) - Android",
|
||||
"name": "Client [STG] - Android",
|
||||
"request": "launch",
|
||||
"type": "dart",
|
||||
"program": "apps/mobile/apps/client/lib/main.dart",
|
||||
"args": [
|
||||
"--flavor", "stage",
|
||||
"--dart-define-from-file=${workspaceFolder}/apps/mobile/config.stage.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Client [STG] - iOS",
|
||||
"request": "launch",
|
||||
"type": "dart",
|
||||
"program": "apps/mobile/apps/client/lib/main.dart",
|
||||
"args": [
|
||||
"--flavor", "stage",
|
||||
"--dart-define-from-file=${workspaceFolder}/apps/mobile/config.stage.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Client [PROD] - Android",
|
||||
"request": "launch",
|
||||
"type": "dart",
|
||||
"program": "apps/mobile/apps/client/lib/main.dart",
|
||||
"args": [
|
||||
"--flavor", "prod",
|
||||
"--dart-define-from-file=${workspaceFolder}/apps/mobile/config.prod.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Client [PROD] - iOS",
|
||||
"request": "launch",
|
||||
"type": "dart",
|
||||
"program": "apps/mobile/apps/client/lib/main.dart",
|
||||
"args": [
|
||||
"--flavor", "prod",
|
||||
"--dart-define-from-file=${workspaceFolder}/apps/mobile/config.prod.json"
|
||||
]
|
||||
},
|
||||
// ===================== Staff App =====================
|
||||
{
|
||||
"name": "Staff [DEV] - Android",
|
||||
"request": "launch",
|
||||
"type": "dart",
|
||||
"program": "apps/mobile/apps/staff/lib/main.dart",
|
||||
"args": [
|
||||
"--flavor", "dev",
|
||||
"--dart-define-from-file=${workspaceFolder}/apps/mobile/config.dev.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Staff (Dev) - iOS",
|
||||
"name": "Staff [DEV] - iOS",
|
||||
"request": "launch",
|
||||
"type": "dart",
|
||||
"program": "apps/mobile/apps/staff/lib/main.dart",
|
||||
"args": [
|
||||
"--flavor", "dev",
|
||||
"--dart-define-from-file=${workspaceFolder}/apps/mobile/config.dev.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Staff [STG] - Android",
|
||||
"request": "launch",
|
||||
"type": "dart",
|
||||
"program": "apps/mobile/apps/staff/lib/main.dart",
|
||||
"args": [
|
||||
"--flavor", "stage",
|
||||
"--dart-define-from-file=${workspaceFolder}/apps/mobile/config.stage.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Staff [STG] - iOS",
|
||||
"request": "launch",
|
||||
"type": "dart",
|
||||
"program": "apps/mobile/apps/staff/lib/main.dart",
|
||||
"args": [
|
||||
"--flavor", "stage",
|
||||
"--dart-define-from-file=${workspaceFolder}/apps/mobile/config.stage.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Staff [PROD] - Android",
|
||||
"request": "launch",
|
||||
"type": "dart",
|
||||
"program": "apps/mobile/apps/staff/lib/main.dart",
|
||||
"args": [
|
||||
"--flavor", "prod",
|
||||
"--dart-define-from-file=${workspaceFolder}/apps/mobile/config.prod.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Staff [PROD] - iOS",
|
||||
"request": "launch",
|
||||
"type": "dart",
|
||||
"program": "apps/mobile/apps/staff/lib/main.dart",
|
||||
"args": [
|
||||
"--flavor", "prod",
|
||||
"--dart-define-from-file=${workspaceFolder}/apps/mobile/config.prod.json"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,15 +14,14 @@ scripts:
|
||||
echo " 🚀 KROW WORKFORCE CUSTOM COMMANDS 🚀"
|
||||
echo "============================================================"
|
||||
echo " BUILD COMMANDS:"
|
||||
echo " - melos run build:client : Build Client App (APK)"
|
||||
echo " - melos run build:staff : Build Staff App (APK)"
|
||||
echo " - melos run build:client -- <PLATFORM> --<MODE> --flavor <ENV> --dart-define-from-file=../../config.<ENV>.json"
|
||||
echo " - melos run build:staff -- <PLATFORM> --<MODE> --flavor <ENV> --dart-define-from-file=../../config.<ENV>.json"
|
||||
echo " - melos run build:design-system : Build Design System Viewer"
|
||||
echo ""
|
||||
echo " DEBUG/START COMMANDS:"
|
||||
echo " - melos run start:client -- -d <ID> : Run Client App"
|
||||
echo " - melos run start:staff -- -d <ID> : Run Staff App"
|
||||
echo " - melos run start:client -- -d <ID> --flavor <ENV> --dart-define-from-file=../../config.<ENV>.json"
|
||||
echo " - melos run start:staff -- -d <ID> --flavor <ENV> --dart-define-from-file=../../config.<ENV>.json"
|
||||
echo " - melos run start:design-system : Run DS Viewer"
|
||||
echo " (e.g., melos run start:client -- -d chrome)"
|
||||
echo ""
|
||||
echo " CODE GENERATION:"
|
||||
echo " - melos run gen:l10n : Generate Slang l10n"
|
||||
@@ -49,32 +48,30 @@ scripts:
|
||||
packageFilters:
|
||||
dependsOn: build_runner
|
||||
|
||||
# Single-line scripts so that melos run arg forwarding works via --
|
||||
# Usage: melos run build:client -- apk --release --flavor dev --dart-define-from-file=../../config.dev.json
|
||||
build:client:
|
||||
run: |
|
||||
melos run gen:l10n --filter="core_localization"
|
||||
melos run gen:build --filter="core_localization"
|
||||
melos exec --scope="krowwithus_client" -- "flutter build apk"
|
||||
description: "Build the Client app (Android APK by default)."
|
||||
run: melos exec --scope="krowwithus_client" -- flutter build
|
||||
description: "Build the Client app. Pass args via --: <platform> --<mode> --flavor <env> --dart-define-from-file=../../config.<env>.json"
|
||||
|
||||
build:staff:
|
||||
run: |
|
||||
melos run gen:l10n --filter="core_localization"
|
||||
melos run gen:build --filter="core_localization"
|
||||
melos exec --scope="krowwithus_staff" -- "flutter build apk"
|
||||
description: "Build the Staff app (Android APK by default)."
|
||||
run: melos exec --scope="krowwithus_staff" -- flutter build
|
||||
description: "Build the Staff app. Pass args via --: <platform> --<mode> --flavor <env> --dart-define-from-file=../../config.<env>.json"
|
||||
|
||||
build:design-system-viewer:
|
||||
run: melos exec --scope="design_system_viewer" -- "flutter build apk"
|
||||
run: melos exec --scope="design_system_viewer" -- flutter build apk
|
||||
description: "Build the Design System Viewer app (Android APK by default)."
|
||||
|
||||
# Single-line scripts so that melos run arg forwarding works via --
|
||||
# Usage: melos run start:client -- -d android --flavor dev --dart-define-from-file=../../config.dev.json
|
||||
start:client:
|
||||
run: melos exec --scope="krowwithus_client" -- "flutter run"
|
||||
description: "Start the Client app. Pass platform using -- -d <platform>, e.g. -d chrome"
|
||||
run: melos exec --scope="krowwithus_client" -- flutter run
|
||||
description: "Start the Client app. Pass args via --: -d <device> --flavor <env> --dart-define-from-file=../../config.<env>.json"
|
||||
|
||||
start:staff:
|
||||
run: melos exec --scope="krowwithus_staff" -- "flutter run"
|
||||
description: "Start the Staff app. Pass platform using -- -d <platform>, e.g. -d chrome"
|
||||
run: melos exec --scope="krowwithus_staff" -- flutter run
|
||||
description: "Start the Staff app. Pass args via --: -d <device> --flavor <env> --dart-define-from-file=../../config.<env>.json"
|
||||
|
||||
start:design-system-viewer:
|
||||
run: melos exec --scope="design_system_viewer" -- "flutter run"
|
||||
run: melos exec --scope="design_system_viewer" -- flutter run
|
||||
description: "Start the Design System Viewer app. Pass platform using -- -d <platform>, e.g. -d chrome"
|
||||
|
||||
@@ -40,10 +40,12 @@ distribute-android-script: &distribute-android-script
|
||||
name: 🚀 🤖 Distribute Android to Firebase App Distribution
|
||||
script: |
|
||||
# Distribute Android APK
|
||||
# Note: With flavors the APK is in a flavor-specific subdirectory
|
||||
APP_PATH=$(find apps/mobile/apps -name "app-${ENV}-release.apk" -o -name "app-release.apk" | head -n 1)
|
||||
# With flavors the APK is at: build/app/outputs/apk/<flavor>/release/app-<flavor>-release.apk
|
||||
APP_PATH=$(find apps/mobile/apps -name "app-${ENV}-release.apk" | head -n 1)
|
||||
if [ -z "$APP_PATH" ]; then
|
||||
echo "No APK found!"
|
||||
echo "❌ No APK found matching app-${ENV}-release.apk — was --flavor ${ENV} applied during build?"
|
||||
echo "Listing all APKs found:"
|
||||
find apps/mobile/apps -name "*.apk" -type f
|
||||
exit 1
|
||||
fi
|
||||
echo "Found APK at: $APP_PATH"
|
||||
|
||||
@@ -53,9 +53,9 @@ mobile-client-build: dataconnect-generate-sdk
|
||||
$(eval MODE ?= release)
|
||||
@echo "--> Building client app for $(PLATFORM) in $(MODE) mode (env: $(ENV))..."
|
||||
@cd $(MOBILE_DIR) && \
|
||||
melos exec --scope="core_localization" -- "dart run slang" && \
|
||||
melos exec --scope="core_localization" -- "dart run build_runner build --delete-conflicting-outputs" && \
|
||||
melos exec --scope="krowwithus_client" -- "flutter build $(PLATFORM) --$(MODE) --flavor $(ENV) --dart-define-from-file=../../config.$(ENV).json"
|
||||
melos run gen:l10n && \
|
||||
melos run gen:build && \
|
||||
melos run build:client -- $(PLATFORM) --$(MODE) --flavor $(ENV) --dart-define-from-file=../../config.$(ENV).json
|
||||
|
||||
# --- Staff App ---
|
||||
mobile-staff-dev-android: dataconnect-generate-sdk
|
||||
@@ -69,9 +69,9 @@ mobile-staff-build: dataconnect-generate-sdk
|
||||
$(eval MODE ?= release)
|
||||
@echo "--> Building staff app for $(PLATFORM) in $(MODE) mode (env: $(ENV))..."
|
||||
@cd $(MOBILE_DIR) && \
|
||||
melos exec --scope="core_localization" -- "dart run slang" && \
|
||||
melos exec --scope="core_localization" -- "dart run build_runner build --delete-conflicting-outputs" && \
|
||||
melos exec --scope="krowwithus_staff" -- "flutter build $(PLATFORM) --$(MODE) --flavor $(ENV) --dart-define-from-file=../../config.$(ENV).json"
|
||||
melos run gen:l10n && \
|
||||
melos run gen:build && \
|
||||
melos run build:staff -- $(PLATFORM) --$(MODE) --flavor $(ENV) --dart-define-from-file=../../config.$(ENV).json
|
||||
|
||||
# --- E2E (Maestro) ---
|
||||
# Set env before running: TEST_CLIENT_EMAIL, TEST_CLIENT_PASSWORD, TEST_CLIENT_COMPANY, TEST_STAFF_PHONE, TEST_STAFF_OTP, TEST_STAFF_SIGNUP_PHONE
|
||||
|
||||
Reference in New Issue
Block a user