Refine build scripts to include explicit environment variable outputs for target platform and ABI settings, enhancing clarity and usability. Default values for split ABI, target platform, and ABI are now consistently set across scripts, improving the reproducibility of APK builds.

This commit is contained in:
Henrique Velloso
2026-01-20 01:12:37 -03:00
parent cb6702b214
commit 64513057de
2 changed files with 26 additions and 8 deletions
+20 -6
View File
@@ -30,6 +30,9 @@ echo "== Environment =="
echo "TAG=${TAG}"
echo "GRADLE_USER_HOME=${GRADLE_USER_HOME:-}"
echo "PUB_CACHE=${PUB_CACHE:-}"
echo "REPRO_TARGET_PLATFORM=${REPRO_TARGET_PLATFORM:-android-arm64}"
echo "REPRO_SPLIT_PER_ABI=${REPRO_SPLIT_PER_ABI:-1}"
echo "REPRO_ABI=${REPRO_ABI:-arm64-v8a}"
echo "== Tool versions =="
java -version
@@ -84,14 +87,25 @@ if [ -n "${GRADLE_USER_HOME:-}" ]; then
} > "${GRADLE_USER_HOME}/gradle.properties"
fi
if [ "${REPRO_SPLIT_PER_ABI:-0}" = "1" ]; then
echo "Building with --split-per-abi (hard mode)"
flutter build apk --release --split-per-abi --no-pub
APK_PATH="$(ls -1 build/app/outputs/flutter-apk/*arm64-v8a*release*.apk | head -n 1)"
OUT_APK="${OUT_DIR}/app-${SOURCE_DATE_EPOCH}-${TAG}-arm64-v8a-release.apk"
TARGET_PLATFORM="${REPRO_TARGET_PLATFORM:-android-arm64}"
ABI_NAME="${REPRO_ABI:-arm64-v8a}"
if [ "${REPRO_SPLIT_PER_ABI:-1}" = "1" ]; then
echo "Building with --split-per-abi (arm64 default)"
if [ -n "${TARGET_PLATFORM}" ]; then
flutter build apk --release --split-per-abi --target-platform "${TARGET_PLATFORM}" --no-pub
else
flutter build apk --release --split-per-abi --no-pub
fi
APK_PATH="$(ls -1 build/app/outputs/flutter-apk/*"${ABI_NAME}"*release*.apk | head -n 1)"
OUT_APK="${OUT_DIR}/app-${SOURCE_DATE_EPOCH}-${TAG}-${ABI_NAME}-release.apk"
else
echo "Building single APK (default)"
flutter build apk --release --no-pub
if [ -n "${TARGET_PLATFORM}" ]; then
flutter build apk --release --target-platform "${TARGET_PLATFORM}" --no-pub
else
flutter build apk --release --no-pub
fi
APK_PATH="$(ls -1 build/app/outputs/flutter-apk/*release*.apk | head -n 1)"
OUT_APK="${OUT_DIR}/app-${SOURCE_DATE_EPOCH}-${TAG}-release.apk"
fi
+6 -2
View File
@@ -53,7 +53,9 @@ echo "Docker platform: ${DOCKER_PLATFORM}"
echo "Flutter: ${FLUTTER_VERSION}"
echo "Flutter sha256: ${FLUTTER_SHA256}"
echo "cmdline-tools sha256: ${CMDLINE_TOOLS_SHA256}"
echo "split-per-abi: ${REPRO_SPLIT_PER_ABI:-0}"
echo "split-per-abi: ${REPRO_SPLIT_PER_ABI:-1}"
echo "target-platform: ${REPRO_TARGET_PLATFORM:-android-arm64}"
echo "abi: ${REPRO_ABI:-arm64-v8a}"
echo "== Building Docker image =="
docker build --platform "${DOCKER_PLATFORM}" \
@@ -101,7 +103,9 @@ run_one () {
-e "GRADLE_USER_HOME=/work/gradle" \
-e "GRADLE_OPTS=-Dorg.gradle.vfs.watch=false" \
-e "PUB_CACHE=/work/pub-cache" \
-e "REPRO_SPLIT_PER_ABI=${REPRO_SPLIT_PER_ABI:-0}" \
-e "REPRO_SPLIT_PER_ABI=${REPRO_SPLIT_PER_ABI:-1}" \
-e "REPRO_TARGET_PLATFORM=${REPRO_TARGET_PLATFORM:-android-arm64}" \
-e "REPRO_ABI=${REPRO_ABI:-arm64-v8a}" \
-v "${ROOT_DIR}:/repo:ro" \
-v "${OUT_DIR}:/out:rw" \
"${cache_mounts[@]}" \