GitHub Actions
GitHub Actions 및 Lingo.dev CI/CD를 활용한 AI 번역
GitHub Actions란 무엇인가요?
GitHub Actions는 GitHub에 내장된 CI/CD 및 자동화 플랫폼입니다. 사용자는 YAML 파일로 워크플로우를 정의하여 코드를 빌드, 테스트, 배포하거나 리포지토리 이벤트에 의해 트리거되는 작업을 자동화할 수 있습니다.
Lingo.dev CI/CD란 무엇인가요?
Lingo.dev CI/CD는 CI/CD에서 앱과 콘텐츠를 현지화하는 AI 기반 도구로, 번역이 절대 오래되지 않도록 보장합니다. GitHub의 경우, Lingo.dev는 통합을 간소화하는 맞춤형 GitHub Action을 제공합니다.
이 가이드에 대하여
이 가이드는 Lingo.dev GitHub Action과 Lingo.dev Engine을 사용하여 Lingo.dev CI/CD를 설정하는 방법을 설명합니다.
1단계. Lingo.dev CLI 설정
시작하려면 Lingo.dev CLI의 빠른 시작을 따르세요.
다음 항목을 준비해야 합니다:
- Lingo.dev용 API 키
- 번역 파이프라인의 동작을 구성하는
i18n.json파일 npx lingo.dev@latest run로 콘텐츠를 번역할 수 있는 기능
2단계. 리포지토리 시크릿 구성
- Settings > Secrets and variables > Actions로 이동합니다.
- New repository secret을 클릭합니다.
- Name 필드에
LINGODOTDEV_API_KEY을 입력합니다. - Secret 필드에 Lingo.dev API 키를 입력합니다.
- Add secret을 클릭합니다.
3단계. 워크플로우 선택
다양한 워크플로우를 지원하기 위해 Lingo.dev CI/CD를 여러 방식으로 설정할 수 있습니다. 다음은 권장하는 워크플로우입니다(예제 제공):
- 콘텐츠가
main에 병합될 때, 번역을main에 커밋 - 콘텐츠가
main에 병합될 때,main에서 풀 리퀘스트 생성 - 콘텐츠가 기능 브랜치에 병합될 때, 번역을 해당 브랜치에 커밋
- 콘텐츠가 기능 브랜치에 병합될 때, 해당 브랜치에서 풀 리퀘스트 생성
하지만 "최고의" 워크플로우는 없습니다. 모두 장단점이 있습니다. 어디서부터 시작해야 할지 확실하지 않다면 첫 번째 옵션부터 시작하는 것을 권장합니다. 가장 간단하고 눈에 띄지 않는 워크플로우입니다.
4단계. 워크플로우 설정하기
-
저장소에
.github/workflows디렉터리를 생성합니다:mkdir -p .github/workflows.github앞에.를 반드시 포함해야 합니다. -
.github/workflows디렉터리에 YAML 파일을 생성합니다:touch .github/workflows/translate.yml파일 이름은 중요하지 않습니다.
-
예제 워크플로우 중 하나를 파일에 복사합니다.
-
워크플로우가 풀 리퀘스트를 생성하는 경우:
- 설정 > 액션 > 일반으로 이동합니다.
- GitHub Actions가 풀 리퀘스트를 생성하고 승인하도록 허용을 활성화합니다.
- 저장을 클릭합니다.
-
변경 사항을
main브랜치에 커밋하고 푸시합니다:git add .github/workflows/translate.yml git commit -m "feat: GitHub action for Lingo.dev" git push
(선택 사항) 5단계. 워크플로우 커스터마이징
Lingo.dev CI/CD는 대부분의 경우 커스터마이징할 필요가 없는 기본값을 가지고 있습니다. GitHub Action에 입력값을 전달하여 이를 재정의할 수 있습니다:
사용 가능한 입력값:
version: Lingo.dev CLI 버전 (기본값:"latest")api-key: Lingo.dev 플랫폼 API 키 (필수)pull-request: 변경 사항으로 풀 리퀘스트 생성 (기본값:false)commit-message: 커스텀 커밋 메시지 (기본값:"feat: update translations via @LingoDotDev")pull-request-title: 커스텀 풀 리퀘스트 제목 (기본값:"feat: update translations via @LingoDotDev")commit-author-name: Git 커밋 작성자 이름 (기본값:"Lingo.dev")commit-author-email: Git 커밋 작성자 이메일 (기본값:"[email protected]")working-directory: 작업 디렉터리 (기본값:".")process-own-commits: 이 액션으로 생성된 커밋 처리 (기본값:false)parallel: 병렬 모드로 실행 (기본값:false)
커스텀 입력값을 사용한 예제:
- name: Lingo.dev
uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
commit-message: "My custom commit message!"
parallel: true
예제 워크플로우
메인에 커밋
콘텐츠가 main에 병합될 때, 번역을 main에 커밋합니다.
name: Translate
on:
push:
branches: [main]
permissions:
contents: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Lingo.dev
uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
main에서 풀 리퀘스트
콘텐츠가 main에 병합될 때, main에서 풀 리퀘스트를 생성합니다.
name: Translate
on:
push:
branches: [main]
permissions:
contents: write
pull-requests: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Lingo.dev
uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
pull-request: true
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
기능 브랜치에 커밋
콘텐츠가 기능 브랜치에 병합될 때, 번역을 해당 브랜치에 커밋합니다.
name: Translate
on:
push:
branches-ignore: [main]
permissions:
contents: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Lingo.dev
uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
기능 브랜치에서 풀 리퀘스트
콘텐츠가 기능 브랜치에 병합될 때, 해당 브랜치에서 풀 리퀘스트를 생성합니다.
name: Translate
on:
push:
branches-ignore: [main]
permissions:
contents: write
pull-requests: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Lingo.dev
uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
pull-request: true
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}