File size: 2,566 Bytes
1d9bd9b | 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 | #!/usr/bin/env bash
#
# Deploy the backend to the Hugging Face Space.
#
# Why this script: HF Spaces require a YAML config frontmatter in README.md
# (sdk: docker, app_port: 7860, ...). But GitHub renders that frontmatter as an
# ugly key/value table at the top of the README. So we keep the GitHub README
# CLEAN (no frontmatter) and inject the frontmatter ONLY into the orphan branch
# we push to the Space. The React UI is Vercel-only, so the disposable backend
# branch strips every frontend directory as well as unrelated binary assets.
#
# Prereqs (once):
# git remote add space https://huggingface.co/spaces/<owner>/themis
# (HF write token cached in your git credential helper)
#
# Usage: bash scripts/deploy-space.sh
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$ROOT"
BASE_BRANCH="$(git rev-parse --abbrev-ref HEAD)"
git branch -D hf-space 2>/dev/null || true
git checkout --orphan hf-space
git rm -r --cached frontend vercel-frontend assets >/dev/null 2>&1 || true
# Living documentation contains generated PDFs that are useful in GitHub but are
# not runtime inputs. HF rejects those binaries unless they use Xet, so leave the
# entire documentation tree out of the disposable Space branch.
git rm -r --cached documentation >/dev/null 2>&1 || true
# Court templates live in a pinned private dataset. Keep the source PDFs out of
# the public Space repository; start_private_space.py downloads them at boot.
git rm -r --cached phase1/drafting/templates >/dev/null 2>&1 || true
# statute_vectors.npy is a binary — HF Spaces reject binaries in git (Xet). It rides in the
# themis-escr-artifacts dataset instead and the Dockerfile places it beside the statute JSONs.
git rm --cached "statute corpus/statute_vectors.npy" >/dev/null 2>&1 || true
# themis-handoff ships gzipped corpus inputs (HF pre-receive rejects git binaries)
git rm -r --cached themis-handoff >/dev/null 2>&1 || true
# Prepend the HF Spaces config frontmatter to README.md (orphan/Space branch only).
# Built with explicit newlines so the closing '---' stays on its own line.
{
printf -- '---\n'
printf 'title: Moonley API\n'
printf 'sdk: docker\n'
printf 'app_port: 7860\n'
printf 'pinned: false\n'
printf -- '---\n\n'
cat README.md
} > README.hf && mv README.hf README.md
git -c user.name="vg15o2" -c user.email="vaishu1521.g@gmail.com" \
commit -q -am "Moonley backend (HF Space build)"
git push space hf-space:main --force
git checkout -f "$BASE_BRANCH"
git branch -D hf-space
echo "Deployed backend to the HF Space from '$BASE_BRANCH'."
|