chore: ignore les docs de travail locales FEATURES.md / UI_INTERACTIO… #151
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main, tracking] | |
| pull_request: | |
| workflow_dispatch: | |
| # Le GITHUB_TOKEN n'a besoin que de lire le dépôt (aucun push/PR depuis la CI). | |
| permissions: | |
| contents: read | |
| # Annule les runs précédents encore en cours sur la même réf. | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| android: | |
| name: Android — build & test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: "17" | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v4 | |
| # google-services.json est gitignoré (propre au projet Firebase). On écrit | |
| # un placeholder structurellement valide pour que le plugin google-services | |
| # laisse compiler en CI (aucune valeur réelle requise pour le build). | |
| - name: Provision placeholder google-services.json | |
| run: | | |
| cat > app/google-services.json <<'JSON' | |
| { | |
| "project_info": { | |
| "project_number": "000000000000", | |
| "project_id": "florapin-ci", | |
| "storage_bucket": "florapin-ci.appspot.com" | |
| }, | |
| "client": [ | |
| { | |
| "client_info": { | |
| "mobilesdk_app_id": "1:000000000000:android:0000000000000000", | |
| "android_client_info": { "package_name": "com.florapin.app" } | |
| }, | |
| "oauth_client": [], | |
| "api_key": [{ "current_key": "AIzaSyDUMMYDUMMYDUMMYDUMMYDUMMYDUMMY000" }], | |
| "services": { "appinvite_service": { "other_platform_oauth_client": [] } } | |
| } | |
| ], | |
| "configuration_version": "1" | |
| } | |
| JSON | |
| - name: Lint | |
| run: ./gradlew lint --stacktrace | |
| - name: Unit tests | |
| run: ./gradlew testDebugUnitTest --stacktrace | |
| - name: Assemble debug APK | |
| run: ./gradlew assembleDebug --stacktrace | |
| - name: Upload debug APK | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: app-debug | |
| path: app/build/outputs/apk/debug/*.apk | |
| if-no-files-found: warn | |
| backend: | |
| name: Backend — build & test | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: backend | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Node.js 22 | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "22" | |
| cache: npm | |
| cache-dependency-path: backend/package-lock.json | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Build | |
| run: npm run build | |
| - name: Unit tests | |
| run: npm test | |
| # Les tests e2e montent Postgres/PostGIS + MinIO via Testcontainers ; | |
| # ubuntu-latest fournit le démon Docker requis. --runInBand (déjà dans le | |
| # script) sérialise les suites pour éviter les conflits de ports. | |
| - name: End-to-end tests | |
| run: npm run test:e2e |