name: Push to Hugging Face Hub on: push: branches: - main - master jobs: sync-to-hub: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 with: fetch-depth: 0 lfs: true - name: Setup Python uses: actions/setup-python@v4 with: python-version: '3.10' - name: Push to Hugging Face Hub env: HF_TOKEN: ${{ secrets.HF_TOKEN }} HF_SPACE_NAME: ${{ secrets.HF_SPACE_NAME }} run: | git config --global user.email "github-actions[bot]@users.noreply.github.com" git config --global user.name "github-actions[bot]" # Install git-lfs git lfs install # Clone the HF space or create new directory git clone https://user:$HF_TOKEN@huggingface.co/spaces/$HF_SPACE_NAME hf_space 2>/dev/null || { mkdir hf_space cd hf_space git init git remote add origin https://user:$HF_TOKEN@huggingface.co/spaces/$HF_SPACE_NAME cd .. } cd hf_space # Configure git LFS git lfs install git lfs track "*.pt" git lfs track "*.pth" git lfs track "*.bin" git lfs track "*.h5" git lfs track "*.onnx" git lfs track "*.safetensors" # Copy files from the repository (excluding .git and hf_space) rsync -av --exclude='.git' --exclude='hf_space' ../ . # Add all files and commit git add . git diff-index --quiet HEAD || git commit -m "Sync from GitHub: ${{ github.sha }}" # Push to Hugging Face git push origin main --force