#!/bin/sh set -eu ROOT=$(CDPATH='' cd -- "$(dirname -- "$0")/.." && pwd) ENV_FILE="$ROOT/.env" config_home=${XDG_CONFIG_HOME:-"$HOME/.config"} SIGNING_DIR=${WNH_ANDROID_DEVELOPMENT_SIGNING_DIR:-"$config_home/who_need_help/android-development"} KEYSTORE="$SIGNING_DIR/who-need-help-development.p12" PASSWORD_FILE="$SIGNING_DIR/who-need-help-development.password" "$ROOT/scripts/ensure-local-public-origin.sh" "$ROOT/scripts/validate-android-environment.sh" "$ENV_FILE" development set -a # shellcheck source=/dev/null . "$ENV_FILE" set +a : "${WNH_TRACKING_MIN_TIME_MS:?Set WNH_TRACKING_MIN_TIME_MS in .env}" : "${WNH_TRACKING_HTTP_TIMEOUT_MS:?Set WNH_TRACKING_HTTP_TIMEOUT_MS in .env}" : "${WNH_ANDROID_VERSION_CODE:?Set WNH_ANDROID_VERSION_CODE in .env}" : "${WNH_ANDROID_VERSION_NAME:?Set WNH_ANDROID_VERSION_NAME in .env}" : "${WNH_ANDROID_DEVELOPMENT_SIGNING_KEY_ALIAS:?Set WNH_ANDROID_DEVELOPMENT_SIGNING_KEY_ALIAS in .env}" for secret_file in "$KEYSTORE" "$PASSWORD_FILE"; do if [ ! -f "$secret_file" ]; then echo "Missing Android development signing file: $secret_file" >&2 echo "Run scripts/init-android-development-signing.sh once." >&2 exit 1 fi mode=$(stat -c '%a' "$secret_file") case "$mode" in 400|600) ;; *) echo "Android development signing file must have mode 0400 or 0600: $secret_file" >&2 exit 1 ;; esac done docker build \ --secret "id=android_nonproduction_keystore,src=$KEYSTORE" \ --secret "id=android_nonproduction_password,src=$PASSWORD_FILE" \ --secret "id=android_nonproduction_alias,env=WNH_ANDROID_DEVELOPMENT_SIGNING_KEY_ALIAS" \ --build-arg "WNH_BASE_URL=$WNH_BASE_URL" \ --build-arg "WNH_TRACKING_MIN_TIME_MS=$WNH_TRACKING_MIN_TIME_MS" \ --build-arg "WNH_TRACKING_HTTP_TIMEOUT_MS=$WNH_TRACKING_HTTP_TIMEOUT_MS" \ --build-arg "WNH_ANDROID_VERSION_CODE=$WNH_ANDROID_VERSION_CODE" \ --build-arg "WNH_ANDROID_VERSION_NAME=$WNH_ANDROID_VERSION_NAME" \ --build-arg "WNH_FIREBASE_APPLICATION_ID=${WNH_FIREBASE_APPLICATION_ID:-}" \ --build-arg "WNH_FIREBASE_CLIENT_VALUE=${WNH_FIREBASE_API_KEY:-}" \ --build-arg "WNH_FIREBASE_PROJECT_ID=${WNH_FIREBASE_PROJECT_ID:-}" \ --build-arg "WNH_FIREBASE_GCM_SENDER_ID=${WNH_FIREBASE_GCM_SENDER_ID:-}" \ --build-arg "WNH_PUBLIC_BUILD_TYPE=development" \ --build-arg "WNH_EXPECTED_APPLICATION_ID=org.whoneedhelp.mobile.development" \ --target public-artifact \ --output "type=local,dest=$ROOT/android/dist-development" \ "$ROOT/android" "$ROOT/scripts/android-app-links-verify.sh" \ "$ENV_FILE" \ "$ROOT/android/dist-development" \ --online