amaljoe88's picture
deploy: sync 916cbac5 from GitHub Actions
da9c1b7 verified
name: Deploy to HF Space
on:
push:
branches: [main]
jobs:
deploy:
name: Deploy to HF Space
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install huggingface_hub
run: pip install huggingface_hub -q
- name: Upload to HF Space
env:
HF_TOKEN: ${{ secrets.HF_TOKEN }}
run: |
python3 - <<'EOF'
from huggingface_hub import HfApi
import os, pathlib, tempfile
api = HfApi(token=os.environ["HF_TOKEN"])
repo_id = "amaljoe88/vision-coder-openenv"
sha = os.environ.get("GITHUB_SHA", "")[:8]
raw_base = "https://raw.githubusercontent.com/amaljoe/vision-coder-openenv/main/"
# Upload everything except blog.md and binary PNGs.
# delete_patterns removes HF files that no longer exist in GitHub.
api.upload_folder(
folder_path=".",
repo_id=repo_id,
repo_type="space",
ignore_patterns=["assets/*.png", "*.png", "__pycache__", "*.pyc",
".git", "checkpoints/", "*.log", "blog.md"],
delete_patterns=["*.py", "*.md", "*.sh", "*.yaml", "*.yml",
"*.txt", "*.toml", "*.lock", "*.json", "*.jsonl"],
commit_message=f"deploy: sync {sha} from GitHub Actions",
)
# Upload blog.md with local asset paths replaced by GitHub raw URLs
content = pathlib.Path("blog.md").read_text()
content = content.replace("assets/", raw_base + "assets/")
tmp = pathlib.Path(tempfile.mktemp(suffix=".md"))
tmp.write_text(content)
api.upload_file(
path_or_fileobj=str(tmp),
path_in_repo="blog.md",
repo_id=repo_id,
repo_type="space",
commit_message=f"deploy: blog.md with GitHub raw URLs ({sha})",
)
tmp.unlink()
# Upload docs/data.json with image paths replaced by GitHub raw URLs
import json
raw_docs = raw_base + "docs/"
data = json.loads(pathlib.Path("docs/data.json").read_text())
for case in data:
case["reference_image"] = raw_docs + case["reference_image"]
for variant in case["variants"]:
variant["image"] = raw_docs + variant["image"]
tmp = pathlib.Path(tempfile.mktemp(suffix=".json"))
tmp.write_text(json.dumps(data))
api.upload_file(
path_or_fileobj=str(tmp),
path_in_repo="docs/data.json",
repo_id=repo_id,
repo_type="space",
commit_message=f"deploy: docs/data.json with GitHub raw image URLs ({sha})",
)
tmp.unlink()
print(f"Deployed to https://huggingface.co/spaces/{repo_id}")
EOF