File size: 1,564 Bytes
9b2cded
8464aea
 
9b2cded
 
8464aea
9b2cded
 
 
 
 
 
 
8464aea
 
 
 
 
 
 
 
 
 
 
 
 
 
9b2cded
 
 
8464aea
9b2cded
 
 
 
 
8464aea
9b2cded
 
 
 
8464aea
9b2cded
 
 
8464aea
9b2cded
 
8464aea
9b2cded
 
 
 
 
 
 
 
 
 
 
8464aea
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/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"