docs(ideai): fige la procédure correcte de build/install APK montre
Corrige le script de build montre pour prioriser l'artefact canonique watch_app/build/app/outputs/flutter-apk/app-release.apk et ne plus recopier un fichier sur lui-même ; évite de réinstaller par erreur l'artefact résiduel watch_app/build/watch_app/app/outputs/.... Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
90
.ideai/skills/scripts/build-watch-apk.sh
Executable file
90
.ideai/skills/scripts/build-watch-apk.sh
Executable file
@ -0,0 +1,90 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
MODE="${1:-debug}"
|
||||
|
||||
if [[ "$MODE" != "debug" && "$MODE" != "release" ]]; then
|
||||
echo "Usage: $0 [debug|release]" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
PROJECT_ROOT="/home/anthony/Documents/Projects/GameTime"
|
||||
WATCH_ROOT="$PROJECT_ROOT/watch_app"
|
||||
BUILD_ENV_ROOT="$PROJECT_ROOT/.ideai/build-env"
|
||||
SDK_COPY="$BUILD_ENV_ROOT/flutter-sdk"
|
||||
HOME_DIR="$BUILD_ENV_ROOT/home"
|
||||
GRADLE_DIR="$BUILD_ENV_ROOT/gradle"
|
||||
PUB_CACHE_DIR="$BUILD_ENV_ROOT/pub-cache"
|
||||
TMP_DIR="$BUILD_ENV_ROOT/tmp"
|
||||
ANDROID_HOME="/opt/android-sdk"
|
||||
JAVA_HOME="/usr/lib/jvm/java-21-openjdk"
|
||||
FLUTTER_BIN="$SDK_COPY/bin/flutter"
|
||||
|
||||
mkdir -p "$BUILD_ENV_ROOT" "$HOME_DIR/.config" "$HOME_DIR/.local/share" "$HOME_DIR/.cache" "$GRADLE_DIR" "$PUB_CACHE_DIR" "$TMP_DIR"
|
||||
|
||||
if [[ ! -x "$FLUTTER_BIN" ]]; then
|
||||
cp -a /opt/flutter "$SDK_COPY"
|
||||
fi
|
||||
|
||||
export HOME="$HOME_DIR"
|
||||
export XDG_CONFIG_HOME="$HOME_DIR/.config"
|
||||
export XDG_DATA_HOME="$HOME_DIR/.local/share"
|
||||
export XDG_CACHE_HOME="$HOME_DIR/.cache"
|
||||
export GRADLE_USER_HOME="$GRADLE_DIR"
|
||||
export PUB_CACHE="$PUB_CACHE_DIR"
|
||||
export TMPDIR="$TMP_DIR"
|
||||
export TMP="$TMP_DIR"
|
||||
export TEMP="$TMP_DIR"
|
||||
export JAVA_TOOL_OPTIONS="-Djava.io.tmpdir=$TMP_DIR"
|
||||
export GRADLE_OPTS="-Djava.io.tmpdir=$TMP_DIR"
|
||||
export ANDROID_HOME
|
||||
export JAVA_HOME
|
||||
export PATH="$JAVA_HOME/bin:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$PATH"
|
||||
|
||||
cd "$WATCH_ROOT"
|
||||
|
||||
"$FLUTTER_BIN" --disable-analytics pub get
|
||||
set +e
|
||||
"$FLUTTER_BIN" build apk "--$MODE"
|
||||
BUILD_STATUS=$?
|
||||
set -e
|
||||
|
||||
APK_PATH="$WATCH_ROOT/build/app/outputs/flutter-apk/app-$MODE.apk"
|
||||
ALT_APK_PATH="$WATCH_ROOT/build/watch_app/app/outputs/flutter-apk/app-$MODE.apk"
|
||||
LEGACY_ALT_APK_PATH="$WATCH_ROOT/build/watch_app/app/outputs/apk/$MODE/app-$MODE.apk"
|
||||
CANONICAL_APK_PATH="$WATCH_ROOT/build/app/outputs/flutter-apk/app-$MODE.apk"
|
||||
|
||||
copy_to_canonical_path() {
|
||||
local source_apk="$1"
|
||||
mkdir -p "$(dirname "$CANONICAL_APK_PATH")"
|
||||
if [[ "$source_apk" == "$CANONICAL_APK_PATH" ]]; then
|
||||
echo "APK already at canonical path: $CANONICAL_APK_PATH"
|
||||
return 0
|
||||
fi
|
||||
cp "$source_apk" "$CANONICAL_APK_PATH"
|
||||
echo "APK copied to canonical path: $CANONICAL_APK_PATH"
|
||||
}
|
||||
|
||||
if [[ -f "$APK_PATH" ]]; then
|
||||
copy_to_canonical_path "$APK_PATH"
|
||||
echo "APK built at: $APK_PATH"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ -f "$ALT_APK_PATH" ]]; then
|
||||
copy_to_canonical_path "$ALT_APK_PATH"
|
||||
echo "APK built at: $ALT_APK_PATH"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ -f "$LEGACY_ALT_APK_PATH" ]]; then
|
||||
copy_to_canonical_path "$LEGACY_ALT_APK_PATH"
|
||||
echo "APK built at: $LEGACY_ALT_APK_PATH"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ $BUILD_STATUS -ne 0 ]]; then
|
||||
exit "$BUILD_STATUS"
|
||||
fi
|
||||
|
||||
echo "APK built at: $APK_PATH"
|
||||
Reference in New Issue
Block a user