Skip to content

docs(changelog): publie les modifications dans la 1.13.0 (versionCode… #1

docs(changelog): publie les modifications dans la 1.13.0 (versionCode…

docs(changelog): publie les modifications dans la 1.13.0 (versionCode… #1

Workflow file for this run

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