From 49f32b24f410fb60bb03200ff7855e043ac1189d Mon Sep 17 00:00:00 2001 From: Achintha Isuru Date: Fri, 20 Feb 2026 01:02:37 -0500 Subject: [PATCH] feat: Update mobile CI workflow to use mobile-install-ci for CI-specific setup --- .github/workflows/mobile-ci.yml | 4 ++-- makefiles/dataconnect.mk | 19 ++++++++++++++++++- makefiles/mobile.mk | 9 ++++++++- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/.github/workflows/mobile-ci.yml b/.github/workflows/mobile-ci.yml index 02aafadc..70e41929 100644 --- a/.github/workflows/mobile-ci.yml +++ b/.github/workflows/mobile-ci.yml @@ -80,7 +80,7 @@ jobs: - name: 📦 Get Flutter dependencies run: | - make mobile-install + make mobile-install-ci - name: 🔨 Run compilation check run: | @@ -120,7 +120,7 @@ jobs: - name: 📦 Get Flutter dependencies run: | - make mobile-install + make mobile-install-ci - name: 🔍 Lint changed Dart files run: | diff --git a/makefiles/dataconnect.mk b/makefiles/dataconnect.mk index 7285b997..84b04dff 100644 --- a/makefiles/dataconnect.mk +++ b/makefiles/dataconnect.mk @@ -19,7 +19,7 @@ else $(error Invalid DC_ENV '$(DC_ENV)'. Use DC_ENV=dev or DC_ENV=validation) endif -.PHONY: dataconnect-enable-apis dataconnect-init dataconnect-deploy dataconnect-sql-migrate dataconnect-generate-sdk dataconnect-sync dataconnect-bootstrap-db check-gcloud-beta dataconnect-clean dataconnect-bootstrap-validation-db dataconnect-file dataconnect-file-validation dataconnect-file-dev dataconnect-seed dataconnect-test +.PHONY: dataconnect-enable-apis dataconnect-init dataconnect-deploy dataconnect-sql-migrate dataconnect-generate-sdk dataconnect-generate-sdk-ci dataconnect-sync dataconnect-bootstrap-db check-gcloud-beta dataconnect-clean dataconnect-bootstrap-validation-db dataconnect-file dataconnect-file-validation dataconnect-file-dev dataconnect-seed dataconnect-test #creation dataconnect file dataconnect-file: @@ -79,6 +79,23 @@ dataconnect-generate-sdk: dataconnect-file @firebase dataconnect:sdk:generate --project=$(FIREBASE_ALIAS) @echo "✅ Data Connect SDK generation completed for [$(DC_ENV)]." +# CI-safe SDK generation: tries Firebase CLI if available, otherwise uses pre-generated SDK +dataconnect-generate-sdk-ci: dataconnect-file + @echo "--> Generating Firebase Data Connect SDK for CI [$(DC_SERVICE)]..." + @if command -v firebase >/dev/null 2>&1; then \ + echo " Firebase CLI found, generating SDK..."; \ + firebase dataconnect:sdk:generate --project=$(FIREBASE_ALIAS); \ + echo "✅ Data Connect SDK generation completed for [$(DC_ENV)]."; \ + else \ + echo " Firebase CLI not found in CI environment"; \ + if [ -d "apps/mobile/packages/data_connect/lib/src/dataconnect_generated" ]; then \ + echo " ✅ Using pre-generated SDK from apps/mobile/packages/data_connect/lib/src/dataconnect_generated"; \ + else \ + echo "❌ ERROR: Firebase CLI not available and pre-generated SDK not found!"; \ + exit 1; \ + fi; \ + fi + # Unified backend schema update workflow (schema -> deploy -> SDK) dataconnect-sync: dataconnect-file @echo "--> [1/3] Deploying Data Connect [$(DC_SERVICE)]..." diff --git a/makefiles/mobile.mk b/makefiles/mobile.mk index 43c3d618..dd75f3d7 100644 --- a/makefiles/mobile.mk +++ b/makefiles/mobile.mk @@ -1,6 +1,6 @@ # --- Mobile App Development --- -.PHONY: mobile-install mobile-info mobile-analyze mobile-client-dev-android mobile-staff-dev-android mobile-client-build mobile-staff-build mobile-hot-reload mobile-hot-restart +.PHONY: mobile-install mobile-install-ci mobile-info mobile-analyze mobile-client-dev-android mobile-staff-dev-android mobile-client-build mobile-staff-build mobile-hot-reload mobile-hot-restart MOBILE_DIR := apps/mobile @@ -15,6 +15,13 @@ mobile-install: install-melos dataconnect-generate-sdk @echo "--> Generating localization files..." @cd $(MOBILE_DIR) && melos run gen:l10n +mobile-install-ci: install-melos dataconnect-generate-sdk-ci + @echo "--> Bootstrapping mobile workspace for CI (Melos)..." + @cd $(MOBILE_DIR) && melos bootstrap + @echo "--> Generating localization files..." + @cd $(MOBILE_DIR) && melos run gen:l10n + @echo "✅ CI mobile setup complete" + mobile-info: @echo "--> Fetching mobile command info..." @cd $(MOBILE_DIR) && melos run info