| 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 | |