name: Build iOS IPA for development on: push: branches: [dev, main] paths: - "apps/mobile/web-app/**" - "apps/mobile/native/**" - "apps/mobile/package.json" pull_request: branches: [dev, main] paths: - "apps/mobile/web-app/**" - "apps/mobile/native/**" - "apps/mobile/package.json" concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: build: name: Build iOS IPA for device runs-on: macos-latest steps: - name: 📦 Checkout code uses: actions/checkout@v4 - name: 📦 Setup pnpm uses: pnpm/action-setup@v4 - name: 🏗 Setup Node.js uses: actions/setup-node@v4 with: node-version: 22 cache: "pnpm" - name: 📱 Setup EAS uses: expo/expo-github-action@v8 with: eas-version: latest token: ${{ secrets.EXPO_TOKEN }} - name: Install dependencies run: pnpm install - name: 🔨 Build iOS IPA run: | cd apps/mobile eas build --platform ios --profile development --non-interactive --local --output=./build.ipa env: CI: true # Optional: Upload artifact - name: 📤 Upload IPA uses: actions/upload-artifact@v4 with: name: app-ios path: apps/mobile/build.ipa retention-days: 90 build-simulator: name: Build iOS IPA for simulator runs-on: macos-latest steps: - name: 📦 Checkout code uses: actions/checkout@v4 - name: 📦 Setup pnpm uses: pnpm/action-setup@v4 - name: 🏗 Setup Node.js uses: actions/setup-node@v4 with: node-version: 22 cache: "pnpm" - name: 📱 Setup EAS uses: expo/expo-github-action@v8 with: eas-version: latest token: ${{ secrets.EXPO_TOKEN }} - name: Install dependencies run: pnpm install - name: 🔨 Build iOS IPA run: | cd apps/mobile eas build --platform ios --profile ios-simulator --non-interactive --local --output=./build-simulator.ipa env: CI: true # Optional: Upload artifact - name: 📤 Upload IPA uses: actions/upload-artifact@v4 with: name: app-ios-simulator path: apps/mobile/build-simulator.ipa retention-days: 90