themis / scripts /deploy-space.sh
vg15o2's picture
Moonley backend (HF Space build)
1d9bd9b
Raw
History Blame Contribute Delete
2.57 kB
#!/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'."