Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .github/workflows/ci-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ jobs:
mobile: ${{ steps.filter.outputs.mobile }}
api: ${{ steps.filter.outputs.api }}
admin: ${{ steps.filter.outputs.admin }}
config: ${{ steps.filter.outputs.config }}
steps:
- uses: actions/checkout@v5
- uses: dorny/paths-filter@v3
Expand All @@ -30,12 +31,20 @@ jobs:
mobile:
- 'apps/mobile/**'
- 'packages/shared/**'
- 'bun.lock'
api:
- 'apps/api/**'
- 'packages/shared/**'
- 'bun.lock'
admin:
- 'apps/admin/**'
- 'packages/shared/**'
- 'bun.lock'
config:
- 'bun.lock'
- 'apps/mobile/package.json'
- 'apps/mobile/metro.config.js'
- 'apps/mobile/babel.config.js'

format:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -71,6 +80,9 @@ jobs:
run: make doctor-diff BASE=origin/${{ github.event.pull_request.base.ref }}
- name: React Doctor (full scan — required)
run: make doctor
- name: Verify Web Bundle (catch CJS interop bugs)
if: ${{ needs.changes.outputs.config == 'true' }}
run: make verify-web

validate-api:
needs: changes
Expand Down
7 changes: 6 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,11 @@ start-headless: ## Launch Expo dev server without interactive TTY
dev-web: ## Launch Expo dev server for web
cd apps/mobile && APP_VERSION_NAME="$(APP_VERSION_NAME)" bun run web

.PHONY: verify-web
verify-web: ## Build web bundle and execute it to verify CJS interop (catches circular dependencies)
cd apps/mobile && APP_VERSION_NAME="$(APP_VERSION_NAME)" bun expo export --platform web
node -e "require('fs').readdirSync('apps/mobile/dist/_expo/static/js/web').filter(f => f.endsWith('.js')).forEach(f => require('./apps/mobile/dist/_expo/static/js/web/' + f))"

.PHONY: dev-android
dev-android: ## Launch Expo dev server for Android (Expo Go)
cd apps/mobile && bun run android-dev
Expand Down Expand Up @@ -129,7 +134,7 @@ expo-upgrade: ## Check recommended versions and upgrade Expo SDK packages
echo "Installing: $$PKGSPECS"; \
cd "$$MOBILE" && bun add --minimum-release-age $$SECONDS $$PKGSPECS; \
echo "Re-checking recommended versions..."; \
cd "$$ROOT" && PACKAGES=$$(cd "$$MOBILE" && npx expo install --check 2>&1 | \
cd "$$ROOT" && PACKAGES=$$(cd "$$MOBILE" && APP_VERSION_NAME="$(APP_VERSION_NAME)" npx expo install --check 2>&1 | \
sed -n 's/ \([^ ]*\)@[^ ]* - expected version: ~\?\([^ ]*\)/\1@\2/p'); \
if [ -n "$$PACKAGES" ]; then \
echo "Upgrading: $$PACKAGES"; \
Expand Down
Loading