| #!/usr/bin/env bash |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| set -euo pipefail |
|
|
| if [ "$#" -ne 1 ]; then |
| echo "Usage: $0 <droplet-ip>" >&2 |
| exit 1 |
| fi |
|
|
| IP="$1" |
|
|
| if [ -z "${HF_TOKEN:-}" ]; then |
| echo "Error: HF_TOKEN env var is required (write access to the HF Space)" >&2 |
| exit 1 |
| fi |
|
|
| REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)" |
| START_SECONDS=$SECONDS |
|
|
| DEPLOY_STATUS="FAIL" |
| HF_STATUS="FAIL" |
| PROBE_STATUS="FAIL" |
|
|
| |
| |
| TOKEN=$(openssl rand -base64 24 | tr -d '/+=') |
| echo "==> Deploying to ${IP} with fresh token..." |
| echo |
|
|
| |
| if bash "${REPO_ROOT}/scripts/deploy_droplet.sh" "$IP" "$TOKEN"; then |
| DEPLOY_STATUS="PASS" |
| else |
| echo "deploy_droplet.sh failed" >&2 |
| |
| ELAPSED=$(( SECONDS - START_SECONDS )) |
| echo |
| echo "=== redeploy summary ===" |
| echo "Droplet IP : ${IP}" |
| echo "Token : (not set — deploy failed before token was registered)" |
| echo "Deploy : ${DEPLOY_STATUS}" |
| echo "HF Space : ${HF_STATUS}" |
| echo "E2E probe : ${PROBE_STATUS}" |
| printf "Total time : %dm%02ds\n" $(( ELAPSED / 60 )) $(( ELAPSED % 60 )) |
| exit 1 |
| fi |
|
|
| echo |
| echo "==> Deploy succeeded. Updating HF Space..." |
| echo |
|
|
| |
| if bash "${REPO_ROOT}/scripts/update_hf_env.sh" "$IP" "$TOKEN"; then |
| HF_STATUS="PASS" |
| else |
| echo "update_hf_env.sh failed. HF Space NOT updated." >&2 |
| ELAPSED=$(( SECONDS - START_SECONDS )) |
| echo |
| echo "=== redeploy summary ===" |
| echo "Droplet IP : ${IP}" |
| echo "Token : (regenerated, see HF Space vars)" |
| echo "Deploy : ${DEPLOY_STATUS}" |
| echo "HF Space : ${HF_STATUS}" |
| echo "E2E probe : ${PROBE_STATUS}" |
| printf "Total time : %dm%02ds\n" $(( ELAPSED / 60 )) $(( ELAPSED % 60 )) |
| exit 1 |
| fi |
|
|
| echo |
| echo "==> HF Space updated. Running end-to-end probe..." |
| echo |
|
|
| |
| |
| |
| |
| set +e |
| "${REPO_ROOT}/.venv/bin/python" "${REPO_ROOT}/scripts/probe_addresses.py" |
| PROBE_EXIT=$? |
| set -e |
|
|
| if [ "$PROBE_EXIT" -eq 0 ]; then |
| PROBE_STATUS="PASS" |
| else |
| PROBE_STATUS="FAIL" |
| fi |
|
|
| |
| ELAPSED=$(( SECONDS - START_SECONDS )) |
| echo |
| echo "=== redeploy summary ===" |
| echo "Droplet IP : ${IP}" |
| echo "Token : (regenerated, see HF Space vars)" |
| echo "Deploy : ${DEPLOY_STATUS}" |
| echo "HF Space : ${HF_STATUS}" |
| echo "E2E probe : ${PROBE_STATUS}" |
| printf "Total time : %dm%02ds\n" $(( ELAPSED / 60 )) $(( ELAPSED % 60 )) |
|
|
| |
| [ "$PROBE_STATUS" = "PASS" ] |
|
|