使用 CircleCI 工作流管理 Spaces
你可以使用 CircleCI 工作流 来让你的 Space 与 GitHub 仓库保持实时同步。
CircleCI 是一个持续集成 / 持续交付(CI/CD)平台,可以帮助你自动化软件开发流程。CircleCI workflow 是写在配置文件中的一组自动化任务,由 CircleCI 负责编排,用来简化构建、测试、部署整个流程。
提示:当单个文件超过 10MB 时,Spaces 要求使用 Git-LFS。如果你不想启用 Git-LFS,需要检查仓库历史并清理大文 件。可以使用 BFG Repo-Cleaner 这类工具,它会在本地保留一份仓库备份。
首先,把 GitHub 仓库与 Spaces 应用关联起来:把你的 Space 仓库作为一个新的 remote 添加到现有 Git 仓库中。
git remote add space https://huggingface.co/spaces/HF_USERNAME/SPACE_NAME
接着,先做一次强制推送,让双方内容第一次对齐:
git push --force space main
然后,配置一个 CircleCI 工作流,让它自动把 main 分支推送到 Spaces。
下面示例中需要注意:
- 将
HF_USERNAME替换成你的用户名,将SPACE_NAME替换成 Space 名称。 - 在 CircleCI 中创建一个 context,并在其中添加一个环境变量(示例里叫 HF_PERSONAL_TOKEN,你可以用任意名字,只需记得在后面 对应)。这个变量的值就是你的 Hugging Face API token,可以在 Hugging Face 个人主页的 API Tokens 页面 获取。
version: 2.1
workflows:
main:
jobs:
- sync-to-huggingface:
context:
- HuggingFace
filters:
branches:
only:
- main
jobs:
sync-to-huggingface:
docker:
- image: alpine
resource_class: small
steps:
- run:
name: install git
command: apk update && apk add openssh-client git
- checkout
- run:
name: push to Huggingface hub
command: |
git config user.email "<your-email@here>"
git config user.name "<your-identifier>"
git push -f https://HF_USERNAME:${HF_PERSONAL_TOKEN}@huggingface.co/spaces/HF_USERNAME/SPACE_NAME main