This commit is contained in:
parent
70ad5100be
commit
a9c18d6708
1 changed files with 28 additions and 7 deletions
|
|
@ -25,9 +25,10 @@ on:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
|
||||||
runs-on: docker
|
runs-on: docker
|
||||||
|
container:
|
||||||
|
image: pazof/yavsc-build-env:debian12-dotnet10-android36-v5
|
||||||
|
options: --device /dev/kvm --privileged
|
||||||
steps:
|
steps:
|
||||||
- name: Clone yavsc
|
- name: Clone yavsc
|
||||||
run: |
|
run: |
|
||||||
|
|
@ -40,30 +41,50 @@ jobs:
|
||||||
fi
|
fi
|
||||||
git submodule update --init --recursive
|
git submodule update --init --recursive
|
||||||
echo "✅ Checked out at $(git rev-parse HEAD) on $(git branch --show-current 2>/dev/null || echo detached HEAD)"
|
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
|
- name: Démarrer l'émulateur QEMU Headless
|
||||||
run: |
|
run: |
|
||||||
set -e
|
# 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
|
||||||
|
export ANDROID_HOME=/opt/android-sdk
|
||||||
export ANDROID_AVD_HOME=${ANDROID_HOME}/.android/avd
|
export ANDROID_AVD_HOME=${ANDROID_HOME}/.android/avd
|
||||||
|
|
||||||
|
# 2. Initialisation obligatoire du serveur ADB
|
||||||
adb start-server
|
adb start-server
|
||||||
|
|
||||||
echo "⌛ Démarrage de l'émulateur en tâche de fond..."
|
echo "⌛ Démarrage de l'émulateur en tâche de fond..."
|
||||||
|
|
||||||
|
# 3. Lancement corrigé : exclusion de -gpu off (qui brise SwiftShader) et forçage d'un profil CPU standard
|
||||||
emulator -avd pixel_test \
|
emulator -avd pixel_test \
|
||||||
-no-window \
|
-no-window \
|
||||||
-no-audio \
|
-no-audio \
|
||||||
-no-boot-anim \
|
-no-boot-anim \
|
||||||
-gpu off &
|
-gpu swiftshader \
|
||||||
EMU_PID=$!
|
-no-metrics \
|
||||||
|
-qemu -cpu max,fma=off,avx2=off,bmi1=off,bmi2=off &
|
||||||
|
|
||||||
echo "Attente de la détection par ADB..."
|
echo "Attente de la détection par ADB..."
|
||||||
adb wait-for-device
|
adb wait-for-device
|
||||||
|
|
||||||
echo "Attente de la fin du boot d'Android..."
|
echo "Attente de la fin du boot d'Android..."
|
||||||
OUT=""
|
OUT=""
|
||||||
while [[ "$OUT" != "1" ]]; do
|
COUNTER=0
|
||||||
sleep 5
|
# 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')
|
OUT=$(adb shell getprop sys.boot_completed | tr -d '\r')
|
||||||
echo "Statut actuel : ${OUT:-0}"
|
echo "Statut actuel : ${OUT:-0}"
|
||||||
|
let COUNTER=COUNTER+1
|
||||||
done
|
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 !"
|
echo "✅ L'émulateur Android est prêt !"
|
||||||
|
|
||||||
- name: Test
|
- name: Test
|
||||||
run: |
|
run: |
|
||||||
echo "⌛ Lancement des tests..."
|
echo "⌛ Lancement des tests..."
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue