|
name: Deploy to HF Spaces (on main) |
|
|
|
on: |
|
push: |
|
branches: [main] |
|
workflow_dispatch: {} |
|
|
|
concurrency: |
|
group: deploy-hf-space |
|
cancel-in-progress: true |
|
|
|
jobs: |
|
deploy: |
|
runs-on: ubuntu-latest |
|
steps: |
|
- name: Checkout repo |
|
uses: actions/checkout@v4 |
|
|
|
- name: Setup Python |
|
uses: actions/setup-python@v5 |
|
with: |
|
python-version: "3.11" |
|
|
|
- name: Install deps |
|
run: | |
|
python -m pip install -U pip |
|
pip install -U "huggingface_hub[cli]" |
|
|
|
- name: Validate app file exists |
|
run: | |
|
test -f src/ui/compi_phase3_final_dashboard.py || (echo "App file missing" && exit 1) |
|
|
|
- name: Push folder to Space |
|
env: |
|
HF_TOKEN: ${{ secrets.HF_TOKEN }} |
|
HF_SPACE_ID: ${{ secrets.HF_SPACE_ID }} |
|
run: | |
|
python - << 'PY' |
|
from huggingface_hub import HfApi |
|
import os |
|
api = HfApi() |
|
repo_id = os.environ["HF_SPACE_ID"] # e.g. "username/compi-final-dashboard" |
|
api.upload_folder( |
|
token=os.environ["HF_TOKEN"], |
|
repo_id=repo_id, |
|
repo_type="space", |
|
folder_path=".", |
|
path_in_repo="", |
|
commit_message="Deploy from GitHub main" |
|
) |
|
print("Uploaded to Space:", repo_id) |
|
PY |
|
|