docs(changelog): publie les modifications dans la 1.13.0 (versionCode… #1
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 | |
| # Compile les tests UI Compose instrumentés (androidTest) sur chaque PR pour | |
| # empêcher leur rot. Leur exécution réelle nécessite un émulateur (device) et | |
| # se fait en local via `connectedDebugAndroidTest` ; on ne l'exécute pas en CI | |
| # (pas d'émulateur sur le runner) — la compilation reste la garde de non-régression. | |
| - name: Compile instrumentation (UI) tests | |
| run: ./gradlew assembleDebugAndroidTest --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 |