forked from baron/baron-sso
[WIP]모바일 로그인창 테스트 강화중
This commit is contained in:
@@ -5,16 +5,98 @@ cd /workspace
|
||||
/bin/sh ./scripts/sync_userfront_locales.sh
|
||||
|
||||
cd /workspace/userfront
|
||||
USERFRONT_INTERNAL_PORT="${USERFRONT_INTERNAL_PORT:-5000}"
|
||||
USERFRONT_FLUTTER_RUN_FLAGS="${USERFRONT_FLUTTER_RUN_FLAGS:---debug}"
|
||||
USERFRONT_BOOT_WARMUP_ATTEMPTS="${USERFRONT_BOOT_WARMUP_ATTEMPTS:-120}"
|
||||
USERFRONT_BOOT_WARMUP_INTERVAL_SECONDS="${USERFRONT_BOOT_WARMUP_INTERVAL_SECONDS:-0.5}"
|
||||
USERFRONT_BOOT_WARMUP_LOCALES="${USERFRONT_BOOT_WARMUP_LOCALES:-ko en}"
|
||||
USERFRONT_BOOT_WARMUP_VIEWPORTS="${USERFRONT_BOOT_WARMUP_VIEWPORTS:-mobile:390 desktop:1440}"
|
||||
|
||||
warm_get() {
|
||||
path="$1"
|
||||
locale="$2"
|
||||
viewport="$3"
|
||||
width="${viewport#*:}"
|
||||
if [ "$width" = "$viewport" ]; then
|
||||
width=""
|
||||
fi
|
||||
|
||||
wget -qO- \
|
||||
--header="Accept-Language: $locale" \
|
||||
--header="Viewport-Width: $width" \
|
||||
"http://127.0.0.1:${USERFRONT_INTERNAL_PORT}${path}" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
warm_userfront_once() {
|
||||
flutter_pid="$1"
|
||||
attempt=1
|
||||
started_at="$(date +%s)"
|
||||
|
||||
while [ "$attempt" -le "$USERFRONT_BOOT_WARMUP_ATTEMPTS" ]; do
|
||||
if wget -qO- "http://127.0.0.1:${USERFRONT_INTERNAL_PORT}/flutter_bootstrap.js" >/dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
if ! kill -0 "$flutter_pid" 2>/dev/null; then
|
||||
echo "[userfront-boot] warmup skipped because flutter exited before readiness" >&2
|
||||
return 0
|
||||
fi
|
||||
attempt=$((attempt + 1))
|
||||
sleep "$USERFRONT_BOOT_WARMUP_INTERVAL_SECONDS"
|
||||
done
|
||||
|
||||
if [ "$attempt" -gt "$USERFRONT_BOOT_WARMUP_ATTEMPTS" ]; then
|
||||
echo "[userfront-boot] warmup skipped after ${USERFRONT_BOOT_WARMUP_ATTEMPTS} readiness attempts" >&2
|
||||
return 0
|
||||
fi
|
||||
|
||||
echo "[userfront-boot] one-shot warmup starting locales=\"${USERFRONT_BOOT_WARMUP_LOCALES}\" viewports=\"${USERFRONT_BOOT_WARMUP_VIEWPORTS}\"" >&2
|
||||
|
||||
for locale in $USERFRONT_BOOT_WARMUP_LOCALES; do
|
||||
for viewport in $USERFRONT_BOOT_WARMUP_VIEWPORTS; do
|
||||
warm_get "/${locale}/signin" "$locale" "$viewport" || true
|
||||
done
|
||||
done
|
||||
|
||||
for asset in \
|
||||
/ \
|
||||
/flutter_bootstrap.js \
|
||||
/main.dart.mjs \
|
||||
/main.dart.wasm \
|
||||
/canvaskit/skwasm.js \
|
||||
/canvaskit/skwasm.wasm \
|
||||
/canvaskit/skwasm_heavy.js \
|
||||
/canvaskit/skwasm_heavy.wasm \
|
||||
/assets/AssetManifest.bin.json \
|
||||
/assets/FontManifest.json
|
||||
do
|
||||
wget -qO- "http://127.0.0.1:${USERFRONT_INTERNAL_PORT}${asset}" >/dev/null 2>&1 || true
|
||||
done
|
||||
|
||||
finished_at="$(date +%s)"
|
||||
elapsed_seconds=$((finished_at - started_at))
|
||||
echo "[userfront-boot] one-shot warmup completed in ${elapsed_seconds}s" >&2
|
||||
}
|
||||
|
||||
set -- flutter run \
|
||||
-d web-server \
|
||||
--web-hostname 0.0.0.0 \
|
||||
--web-port "${USERFRONT_INTERNAL_PORT:-5000}" \
|
||||
--web-port "${USERFRONT_INTERNAL_PORT}" \
|
||||
--wasm \
|
||||
--dart-define=BACKEND_URL="${BACKEND_URL:-}" \
|
||||
--dart-define=CLIENT_LOG_DEBUG="${CLIENT_LOG_DEBUG:-false}" \
|
||||
--dart-define=APP_ENV="${APP_ENV:-dev}" \
|
||||
--dart-define=USERFRONT_URL="${USERFRONT_URL:-}" \
|
||||
${USERFRONT_FLUTTER_RUN_FLAGS:-} \
|
||||
${USERFRONT_FLUTTER_RUN_FLAGS} \
|
||||
--no-web-resources-cdn
|
||||
|
||||
exec "$@"
|
||||
"$@" &
|
||||
flutter_pid="$!"
|
||||
|
||||
terminate() {
|
||||
kill "$flutter_pid" 2>/dev/null || true
|
||||
wait "$flutter_pid" 2>/dev/null || true
|
||||
}
|
||||
|
||||
trap terminate INT TERM
|
||||
warm_userfront_once "$flutter_pid"
|
||||
wait "$flutter_pid"
|
||||
|
||||
Reference in New Issue
Block a user