fix(android-build): move WSL build outputs off Windows mounts
This commit is contained in:
parent
7e9acc47fc
commit
7ad377c12c
|
|
@ -3,6 +3,7 @@
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
APP_BUILD_DIR="$ROOT_DIR/app/build"
|
||||||
|
|
||||||
if [[ -z "${GRADLE_USER_HOME:-}" ]]; then
|
if [[ -z "${GRADLE_USER_HOME:-}" ]]; then
|
||||||
if [[ -d "$HOME/.gradle" && -w "$HOME/.gradle" ]]; then
|
if [[ -d "$HOME/.gradle" && -w "$HOME/.gradle" ]]; then
|
||||||
|
|
@ -47,6 +48,34 @@ TASK="${1:-assembleStandardDebug}"
|
||||||
LOCAL_CHAQUOPY_REPO="${LOCAL_CHAQUOPY_REPO:-$ROOT_DIR/.m2-chaquopy}"
|
LOCAL_CHAQUOPY_REPO="${LOCAL_CHAQUOPY_REPO:-$ROOT_DIR/.m2-chaquopy}"
|
||||||
CHAQUOPY_MAVEN_BASE="${CHAQUOPY_MAVEN_BASE:-https://repo.maven.apache.org/maven2}"
|
CHAQUOPY_MAVEN_BASE="${CHAQUOPY_MAVEN_BASE:-https://repo.maven.apache.org/maven2}"
|
||||||
|
|
||||||
|
running_on_wsl_windows_mount() {
|
||||||
|
[[ -n "${WSL_DISTRO_NAME:-}" && "$ROOT_DIR" == /mnt/* ]]
|
||||||
|
}
|
||||||
|
|
||||||
|
prepare_wsl_build_dir() {
|
||||||
|
if ! running_on_wsl_windows_mount; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
local cache_root="${XDG_CACHE_HOME:-$HOME/.cache}/tg-ws-proxy-android-build"
|
||||||
|
local project_key
|
||||||
|
project_key="$(printf '%s' "$ROOT_DIR" | sha256sum | cut -d' ' -f1)"
|
||||||
|
local linux_build_dir="$cache_root/$project_key/app-build"
|
||||||
|
|
||||||
|
mkdir -p "$cache_root"
|
||||||
|
mkdir -p "$linux_build_dir"
|
||||||
|
|
||||||
|
if [[ -L "$APP_BUILD_DIR" ]]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -e "$APP_BUILD_DIR" ]]; then
|
||||||
|
rm -rf "$APP_BUILD_DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ln -s "$linux_build_dir" "$APP_BUILD_DIR"
|
||||||
|
}
|
||||||
|
|
||||||
task_uses_legacy32() {
|
task_uses_legacy32() {
|
||||||
[[ "$TASK" =~ [Ll]egacy32 ]]
|
[[ "$TASK" =~ [Ll]egacy32 ]]
|
||||||
}
|
}
|
||||||
|
|
@ -123,11 +152,11 @@ prefetch_chaquopy_runtime() {
|
||||||
|
|
||||||
cleanup_stale_build_state() {
|
cleanup_stale_build_state() {
|
||||||
local stale_dirs=(
|
local stale_dirs=(
|
||||||
"$ROOT_DIR/app/build/python/env"
|
"$APP_BUILD_DIR/python/env"
|
||||||
"$ROOT_DIR/app/build/intermediates/project_dex_archive"
|
"$APP_BUILD_DIR/intermediates/project_dex_archive"
|
||||||
"$ROOT_DIR/app/build/intermediates/desugar_graph"
|
"$APP_BUILD_DIR/intermediates/desugar_graph"
|
||||||
"$ROOT_DIR/app/build/tmp/kotlin-classes"
|
"$APP_BUILD_DIR/tmp/kotlin-classes"
|
||||||
"$ROOT_DIR/app/build/snapshot/kotlin"
|
"$APP_BUILD_DIR/snapshot/kotlin"
|
||||||
)
|
)
|
||||||
|
|
||||||
for stale_dir in "${stale_dirs[@]}"; do
|
for stale_dir in "${stale_dirs[@]}"; do
|
||||||
|
|
@ -138,6 +167,7 @@ cleanup_stale_build_state() {
|
||||||
}
|
}
|
||||||
|
|
||||||
prefetch_chaquopy_runtime
|
prefetch_chaquopy_runtime
|
||||||
|
prepare_wsl_build_dir
|
||||||
|
|
||||||
for attempt in $(seq 1 "$ATTEMPTS"); do
|
for attempt in $(seq 1 "$ATTEMPTS"); do
|
||||||
echo "==> Android build attempt $attempt/$ATTEMPTS ($TASK)"
|
echo "==> Android build attempt $attempt/$ATTEMPTS ($TASK)"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue