Spaces:
Sleeping
Sleeping
| # 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" | |