name: Mobile Release on: push: tags: - "mobile-v*" workflow_dispatch: jobs: android: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - uses: actions/setup-node@v7 with: node-version: 22 cache: npm - uses: actions/setup-java@v5 with: distribution: temurin java-version: 21 - name: Setup Android SDK uses: android-actions/setup-android@v4 - run: sdkmanager "platforms;android-35" "build-tools;35.0.0" - run: npm ci - run: npm run build:web - run: npm run mobile:sync - name: Gradle bundleDebug (sans keystore Play — artefact de validation CI) working-directory: apps/mobile/android run: chmod +x gradlew && ./gradlew bundleDebug --no-daemon - uses: actions/upload-artifact@v7 with: name: android-bundle-debug path: apps/mobile/android/app/build/outputs/bundle/debug/*.aab if-no-files-found: error ios: runs-on: macos-latest steps: - uses: actions/checkout@v7 - uses: actions/setup-node@v7 with: node-version: 22 cache: npm - run: npm ci - run: npm run build:web - run: npm run mobile:sync - name: iOS — projet non versionné ou machine locale run: | if [ -d apps/mobile/ios/App ]; then echo "Projet iOS présent — ouvrir Xcode pour archive."; else echo "Pas de dossier ios dans ce clone — ignorer pour Android-only."; fi