使用 Github Actions 管理 Spaces
您可以使用 **Github Actions** 使您的应用程序与您的 GitHub 代码库保持同步。请记住,对于大于 10MB 的文件,Spaces 需要 Git-LFS。如果您不想使用 Git-LFS,您可能需要查看您的文件并检查您的历史记录。使用诸如 BFG Repo-Cleaner 之类的工具从您的历史记录中删除任何大型文件。BFG Repo-Cleaner 将保留您代码库的本地副本作为备份。
首先,您应该将您的 GitHub 代码库和 Spaces 应用程序设置在一起。将您的 Spaces 应用程序添加为现有 Git 代码库的额外远程。
git remote add space https://huggingface.co/spaces/HF_USERNAME/SPACE_NAME
然后强制推送以首次同步所有内容
git push --force space main
接下来,设置一个 GitHub Action 以将您的主分支推送到 Spaces。在下面的示例中
- 将
HF_USERNAME
替换为您的用户名,并将SPACE_NAME
替换为您的 Space 名称。 - 使用您的
HF_TOKEN
创建一个 Github 秘密。您可以在 Hugging Face 个人资料上的 **API 令牌** 下找到您的 Hugging Face API 令牌。
name: Sync to Hugging Face hub
on:
push:
branches: [main]
# to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
sync-to-hub:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
lfs: true
- name: Push to hub
env:
HF_TOKEN: ${{ secrets.HF_TOKEN }}
run: git push https://HF_USERNAME:[email protected]/spaces/HF_USERNAME/SPACE_NAME main
最后,创建一个自动检查任何新拉取请求的文件大小的动作
name: Check file size
on: # or directly `on: [push]` to run the action on every push on any branch
pull_request:
branches: [main]
# to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
sync-to-hub:
runs-on: ubuntu-latest
steps:
- name: Check large files
uses: ActionsDesk/[email protected]
with:
filesizelimit: 10485760 # this is 10MB so we can sync to HF Spaces