Repository navigation
Expand file tree
/
Copy pathmise.toml
More file actions
85 lines (74 loc) · 3.25 KB
/
Copy pathmise.toml
File metadata and controls
85 lines (74 loc) · 3.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# Environnement de développement MG4Control.
#
# Commité volontairement : il décrit comment construire le projet, pas la machine de
# quelqu'un. Pour une surcharge locale, créer un mise.local.toml (ignoré par git).
#
# mise install installe le JDK
# mise run bootstrap installe le SDK Android si absent
# mise run test tests unitaires (les deux flavors)
# mise tasks liste tout
#
# Pourquoi épingler le JDK : AGP 8.5.2 exige Java 17. Le JDK par défaut de la machine
# (26) fait échouer le build avec une erreur de version de classe peu parlante.
[tools]
java = "17"
[env]
ANDROID_HOME = "{{env.HOME}}/Android/Sdk"
ANDROID_SDK_ROOT = "{{env.HOME}}/Android/Sdk"
# Gradle lit JAVA_HOME ; mise le pose déjà via [tools], on force l'ordre du PATH
# pour les outils du SDK.
_.path = [
"{{env.HOME}}/Android/Sdk/platform-tools",
"{{env.HOME}}/Android/Sdk/cmdline-tools/latest/bin",
]
# Version du SDK requise par app/build.gradle.kts (compileSdk = 34).
COMPILE_SDK = "34"
BUILD_TOOLS = "34.0.0"
# Gradle doit tourner sur le JDK de mise. Sans -Dorg.gradle.java.home, Gradle réutilise
# un daemon déjà lancé par l'extension Java de VS Code, qui embarque un JRE 21 sans
# jlink : le build échoue alors sur JdkImageTransform, sans rapport avec le code.
[tasks.bootstrap]
description = "Installe le SDK Android (platform + build-tools) s'il manque"
run = """
set -e
if [ -d "$ANDROID_HOME/platforms/android-$COMPILE_SDK" ]; then
echo "SDK $COMPILE_SDK déjà présent → rien à faire"
exit 0
fi
mkdir -p "$ANDROID_HOME"
if [ ! -x "$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" ]; then
echo "Téléchargement des commandline-tools…"
tmp=$(mktemp -d)
curl -sSL -o "$tmp/tools.zip" \
https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip
unzip -q "$tmp/tools.zip" -d "$tmp"
mkdir -p "$ANDROID_HOME/cmdline-tools"
mv "$tmp/cmdline-tools" "$ANDROID_HOME/cmdline-tools/latest"
rm -rf "$tmp"
fi
yes | "$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" --sdk_root="$ANDROID_HOME" --licenses > /dev/null
"$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" --sdk_root="$ANDROID_HOME" \
"platform-tools" "platforms;android-$COMPILE_SDK" "build-tools;$BUILD_TOOLS"
echo "sdk.dir=$ANDROID_HOME" > local.properties
echo "SDK installé, local.properties écrit"
"""
[tasks.build]
description = "Compile le flavor online en debug"
run = './gradlew -Dorg.gradle.java.home=$JAVA_HOME assembleOnlineDebug'
[tasks.test]
description = "Tests unitaires JVM — les deux flavors"
run = './gradlew -Dorg.gradle.java.home=$JAVA_HOME testOnlineDebugUnitTest testOfflineDebugUnitTest'
[tasks.lint]
description = "Analyse lint Android"
run = './gradlew -Dorg.gradle.java.home=$JAVA_HOME lintOnlineDebug'
[tasks.permissions]
description = "Contrôle de dérive des permissions (le même que la CI)"
run = "bash .github/security/check-permissions.sh"
[tasks.check]
description = "Ce que la CI exécute : permissions + tests"
depends = ["permissions", "test"]
[tasks.release]
description = "APK release des deux flavors (R8 activé — passe véhicule requise avant diffusion)"
run = './gradlew -Dorg.gradle.java.home=$JAVA_HOME assembleOnlineRelease assembleOfflineRelease'
[tasks.clean]
run = './gradlew -Dorg.gradle.java.home=$JAVA_HOME clean'