| name: Deploy to HF Space | |
| on: | |
| push: | |
| branches: [main] | |
| workflow_dispatch: | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| lfs: true | |
| - name: Setup LFS & migrate images | |
| run: | | |
| git config --global user.email "[email protected]" | |
| git config --global user.name "GitHub Actions" | |
| git lfs install | |
| git lfs track "images/**" | |
| echo "images/** filter=lfs diff=lfs merge=lfs -text" >> .gitattributes | |
| git add .gitattributes | |
| git commit -m "Add images to LFS tracking" || echo "No changes" | |
| # Ensure working directory is clean | |
| git add -A | |
| git diff --cached --quiet || git commit -m "Pre-migrate: commit all changes" || echo "No changes" | |
| git lfs migrate import --include="images/**" --include-ref=refs/heads/main | |
| - name: Deploy to Hugging Face Space | |
| env: | |
| HF_USERNAME: ${{ secrets.HF_USERNAME }} | |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
| HF_SPACE_NAME: ${{ secrets.HF_SPACE_NAME }} | |
| run: | | |
| git remote add space https://$HF_USERNAME:[email protected]/spaces/$HF_USERNAME/$HF_SPACE_NAME | |
| git push --force space main | |