CircleCI 워크플로로 Spaces 관리하기
CircleCI 워크플로로 Spaces 관리하기
CircleCI 워크플로를 사용하면 앱을 GitHub 저장소와 동기화 상태로 유지할 수 있어요.
출처: 문서
본문
CircleCI는 소프트웨어 개발 프로세스 자동화를 돕는 지속적 통합·지속적 배포(CI/CD) 플랫폼이에요. CircleCI 워크플로는 구성 파일에 정의되고 CircleCI가 오케스트레이션하는 일련의 자동화 작업으로, 소프트웨어 애플리케이션을 빌드·테스트·배포하는 과정을 간소화해 줘요.
참고: 10MB보다 큰 파일에는 Spaces가 Git-LFS를 요구해요. Git-LFS를 쓰고 싶지 않다면 파일을 검토하고 히스토리를 확인해야 할 수도 있어요. BFG Repo-Cleaner 같은 도구를 사용해 히스토리에서 큰 파일을 제거하세요. BFG Repo-Cleaner는 저장소의 로컬 복사본을 백업으로 보관해요.
먼저 GitHub 저장소와 Spaces 앱을 함께 설정하세요. 기존 Git 저장소에 Spaces 앱을 추가 원격(additional remote)으로 추가해요.
git remote add space https://huggingface.co/spaces/HF_USERNAME/SPACE_NAME
그 다음 처음으로 모든 것을 동기화하기 위해 강제 푸시해요.
git push --force space main
이제 main git 브랜치를 Spaces로 푸시하는 CircleCI 워크플로를 설정하세요.
아래 예시에서는:
HF_USERNAME을 사용자 이름으로,SPACE_NAME을 Space 이름으로 바꾸세요.- CircleCI에서 컨텍스트를 생성하고, 그 안에 HF_PERSONAL_TOKEN(원하는 이름으로 바꿔도 됨 — 직접 만든 키를
HF_PERSONAL_TOKEN위치에 사용)이라는 이름의 env 변수와 그 값으로 Hugging Face API 토큰을 추가하세요. Hugging Face API 토큰은 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
더 알아보기 (Learn more)
첫 동기화는 강제 푸시(git push --force space main)로 시작해요. CircleCI 컨텍스트에 HF_PERSONAL_TOKEN env 변수로 API 토큰을 넣어두면, 워크플로의 푸시 명령이 그 토큰을 사용해 Spaces로 배포해요.