# This workflow will build a .NET project # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net name: Dotnet build and test on: workflow_dispatch: inputs: logLevel: description: 'Log level' required: true default: 'warning' type: choice options: - info - warning - debug tags: description: 'Test scenario tags' required: false type: boolean push: branches: [ "main" ] pull_request: branches: [ "main", "release/*" ] jobs: build: runs-on: docker container: image: pazof/yavsc-build-env:debian12-dotnet10-android36-v5 steps: - name: Clone yavsc run: | cd /src git clone https://forgejo.pschneider.fr/notazof/yavsc.git _src cd _src if [ -n "${GITHUB_REF:-}" ]; then git fetch origin "$GITHUB_REF" git checkout FETCH_HEAD fi git submodule update --init --recursive echo "✅ Checked out at $(git rev-parse HEAD) on $(git branch --show-current 2>/dev/null || echo detached HEAD)" - name: Démarrer l'émulateur QEMU Headless run: | # 1. Variables d'environnement pour stabiliser le noyau Android 36 export RE_EMULATOR_DISABLE_CPUID_CHECK=1 export ANDROID_EMULATOR_DISABLE_VULKAN=1 export ANDROID_EMULATOR_FORCE_GLES_2=1 # 1. Variables de stabilisation export RE_EMULATOR_DISABLE_CPUID_CHECK=1 export ANDROID_EMULATOR_DISABLE_VULKAN=1 export LD_LIBRARY_PATH=/opt/android-sdk/emulator/lib64:/opt/android-sdk/emulator/lib64/qt/lib:$LD_LIBRARY_PATH # 2. Appel direct du moteur sans passer par le script de vérification de Google # Remplacez "postit_test_avd" par le nom exact de votre AVD /opt/android-sdk/emulator/qemu/linux-x86_64/qemu-system-x86_64 -avd postit_test_avd -no-window -no-audio & echo "⌛ Attente de la détection par ADB..." adb wait-for-device echo "⌛ Attente de la fin du boot d'Android..." OUT="" COUNTER=0 # Sécurité : ajout d'un timeout (max 30 essais) pour éviter que la CI ne tourne à l'infini si le boot gèle while [[ "$OUT" != "1" && $COUNTER -lt 30 ]]; do sleep 10 OUT=$(adb shell getprop sys.boot_completed | tr -d '\r') echo "Statut actuel : ${OUT:-0}" let COUNTER=COUNTER+1 done if [ "$OUT" != "1" ]; then echo "❌ Échec du boot d'Android après délai imparti." exit 1 fi echo "✅ L'émulateur Android est prêt !" - name: Test run: | echo "🚀 Installation de l'APK de Debug..." # Ajustez le chemin vers l'APK généré par votre build de debug cd /src/_src APK=src/PostIt/PostIt.Android/bin/Debug/net10.0-android/android-arm64/fr.pschneider.postit-Signed.apk adb install ${APK} echo "🚀 Lancement des tests..." cd /src/_src && dotnet test --verbosity normal && echo "✅ Success !"