sql-error-classifier / scripts /deploy_train_space.sh
nishu08's picture
Deploy CodeBERT inference Space
8a3099e verified
#!/usr/bin/env bash
# Deploy CodeBERT training Space to Hugging Face.
# Usage: ./scripts/deploy_train_space.sh [YOUR_USERNAME/space-name]
set -euo pipefail
SPACE_SUFFIX="${1:-sql-error-classifier-train}"
TOKEN="${HF_TOKEN:-${HUGGING_FACE_HUB_TOKEN:-}}"
if [[ -z "${TOKEN}" ]]; then
echo "Set HF_TOKEN before deploying."
exit 1
fi
# Resolve full space id — must use an account you own
if [[ "${SPACE_SUFFIX}" == */* ]]; then
SPACE_ID="${SPACE_SUFFIX}"
else
USERNAME=$(python - <<PY
from huggingface_hub import HfApi
api = HfApi(token="${TOKEN}")
print(api.whoami()["name"])
PY
)
SPACE_ID="${USERNAME}/${SPACE_SUFFIX}"
fi
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
WORKDIR=$(mktemp -d)
trap 'rm -rf "${WORKDIR}"' EXIT
echo "==> Preparing Space files..."
rsync -a \
--exclude '.venv' \
--exclude 'models' \
--exclude '__pycache__' \
--exclude '.git' \
--exclude '*.joblib' \
"${ROOT}/" "${WORKDIR}/"
cp "${ROOT}/README_TRAIN_SPACE.md" "${WORKDIR}/README.md"
echo "==> Creating Space: ${SPACE_ID}"
python - <<PY
from huggingface_hub import HfApi
api = HfApi(token="${TOKEN}")
api.create_repo("${SPACE_ID}", repo_type="space", space_sdk="docker", exist_ok=True)
PY
echo "==> Uploading..."
python - <<PY
from huggingface_hub import HfApi
api = HfApi(token="${TOKEN}")
api.upload_folder(
folder_path="${WORKDIR}",
repo_id="${SPACE_ID}",
repo_type="space",
commit_message="Deploy CodeBERT training Space",
)
PY
echo "Done: https://huggingface.co/spaces/${SPACE_ID}"
echo "Set Hardware → GPU t4-small, Secrets → HF_TOKEN"