Some checks failed
Dotnet build and test / build (pull_request) Has been cancelled
88 lines
3.1 KiB
YAML
88 lines
3.1 KiB
YAML
# 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 !"
|