1
0
mirror of git://f0xx.org/android_cast synced 2026-07-29 03:38:52 +03:00

Fix Docker CI and orchestration deploy reliability for full rebuild flows.

Use JDK 17 and make in the CI image, avoid self-overwriting DB init SQL, and make Gradle/native builds use container-local SDK paths and CMake caches.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Anton Afanasyeu
2026-06-02 17:37:32 +02:00
parent 097c0790b8
commit d7568b133b
4 changed files with 41 additions and 19 deletions

View File

@@ -222,7 +222,9 @@ if [[ ! -f "$LIBVPX_A" ]]; then
fi
cp -f "$LIBVPX_A" "$OUT/libvpx.a"
cp -f "$OUT/libvpx.a" "$PROJECT_OUT/libvpx.a"
if [[ "$OUT" != "$PROJECT_OUT" ]]; then
cp -f "$OUT/libvpx.a" "$PROJECT_OUT/libvpx.a"
fi
echo ""
echo "Built: $PROJECT_OUT/libvpx.a (size $(ls -lah "${PROJECT_OUT}/libvpx.a" | awk '{print $5}'))"

View File

@@ -42,10 +42,24 @@ fi
export ANDROIDCAST_ROOT="$ROOT"
export ANDROIDCAST_CCACHE="${ANDROIDCAST_CCACHE:-1}"
GRADLE_JAVA_OPT=()
if [[ -n "${JAVA_HOME:-}" ]]; then
GRADLE_JAVA_OPT=(-Dorg.gradle.java.home="${JAVA_HOME}")
fi
# shellcheck source=android-ndk.sh
source "$ROOT/scripts/android-ndk.sh"
export ANDROID_NDK_HOME="$(androidcast_find_ndk_root "$ROOT")"
export ANDROID_NDK_ROOT="$ANDROID_NDK_HOME"
if [[ -n "${ANDROID_SDK_ROOT:-}" ]]; then
LOCAL_PROPS="$ROOT/local.properties"
LOCAL_PROPS_BACKUP=""
if [[ -f "$LOCAL_PROPS" ]]; then
LOCAL_PROPS_BACKUP="$(mktemp)"
cp -f "$LOCAL_PROPS" "$LOCAL_PROPS_BACKUP"
fi
trap 'if [[ -n "${LOCAL_PROPS_BACKUP:-}" && -f "${LOCAL_PROPS_BACKUP}" ]]; then cp -f "${LOCAL_PROPS_BACKUP}" "$LOCAL_PROPS"; rm -f "${LOCAL_PROPS_BACKUP}"; else rm -f "$LOCAL_PROPS"; fi' EXIT
printf 'sdk.dir=%s\n' "${ANDROID_SDK_ROOT//\\/\\\\}" > "$LOCAL_PROPS"
fi
if [[ "$RUN_NATIVE" == "1" && "$RUN_APK" == "1" ]]; then
echo "==> Phase: native codecs"
@@ -59,16 +73,19 @@ else
echo "==> Phase: native codecs (skipped)"
fi
# Avoid host-specific CMake cache paths when running in Docker.
rm -rf "$ROOT/app/.cxx" "$ROOT/app/build/.cxx" "$ROOT/app/build/intermediates/cxx"
if [[ "$RUN_APK" == "1" ]]; then
echo "==> Phase: gradle ${GRADLE_TASK}"
if [[ "$RUN_UNIT_TESTS" == "1" ]]; then
./gradlew --no-daemon clean "${GRADLE_TASK}" testDebugUnitTest
./gradlew --no-daemon "${GRADLE_JAVA_OPT[@]}" clean "${GRADLE_TASK}" testDebugUnitTest
else
./gradlew --no-daemon clean "${GRADLE_TASK}"
./gradlew --no-daemon "${GRADLE_JAVA_OPT[@]}" clean "${GRADLE_TASK}"
fi
else
echo "==> Phase: gradle tests-only"
./gradlew --no-daemon testDebugUnitTest
./gradlew --no-daemon "${GRADLE_JAVA_OPT[@]}" testDebugUnitTest
fi
APK=""