GitLab CI/CD
GitLab CI/CD 및 Lingo.dev CI/CD를 사용한 AI 번역
GitLab CI/CD란 무엇인가요?
GitLab CI/CD는 GitLab에 내장된 지속적 통합 및 배포 플랫폼입니다. 사용자가 YAML 파일로 파이프라인을 정의하여 코드를 빌드, 테스트, 배포하거나 리포지토리 이벤트에 의해 트리거되는 작업을 자동화할 수 있습니다.
Lingo.dev CI/CD란 무엇인가요?
Lingo.dev CI/CD는 CI/CD에서 앱과 콘텐츠를 현지화하는 AI 기반 도구로, 번역이 절대 오래되지 않도록 보장합니다. Lingo.dev CLI 위에 구축되었으며 ci 명령을 통해 사용할 수 있습니다:
npx lingo.dev@latest ci --help
이 가이드에 대하여
이 가이드는 GitLab CI/CD 및 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단계. 액세스 토큰 받기
GitLab CI/CD에서 액세스 토큰은 파이프라인 내에서 특정 작업을 수행하는 데 필요합니다.
액세스 토큰에는 두 가지 유형이 있습니다:
둘 다 사용할 수 있지만, 개인 액세스 토큰만 GitLab의 무료 사용자에게 제공됩니다.
개인 액세스 토큰
-
왼쪽 사이드바에서 아바타를 선택합니다.
-
프로필 편집을 선택합니다.
-
왼쪽 사이드바에서 액세스 토큰을 선택합니다.
-
새 토큰 추가를 선택합니다.
-
토큰 이름에 토큰의 이름을 입력합니다(예: "Lingo.dev").
-
다음 범위를 활성화합니다.
apiread_repositorywrite_repository
-
개인 액세스 토큰 생성을 선택합니다.
프로젝트 액세스 토큰
-
GitLab에서 프로젝트로 이동합니다.
-
설정 > 액세스 토큰을 선택합니다.
-
새 토큰 추가를 선택합니다.
-
토큰 이름에 이름을 입력합니다.
-
토큰의 역할을 선택합니다.
-
다음 범위를 활성화합니다.
apiread_repositorywrite_repository
-
프로젝트 액세스 토큰 생성을 선택합니다.
2단계. CI/CD 변수 구성
GitLab에서 CI/CD 변수를 사용하면 파이프라인이 민감한 값에 액세스할 수 있습니다. GitLab CI/CD에서 Lingo.dev를 사용하려면 Lingo.dev API 키와 GitLab 액세스 토큰이 모두 변수로 제공되어야 합니다.
경고: 기본적으로 CI/CD 변수는 보호된 브랜치에서만 사용할 수 있습니다. 보호된 브랜치를 사용하지 않는 경우 변수 생성 시 변수 보호 옵션을 비활성화하세요.
Lingo.dev API 키
- 설정 > CI/CD로 이동합니다.
- 변수 섹션을 확장합니다.
- 변수 추가를 클릭합니다.
- 키 필드에
LINGODOTDEV_API_KEY를 입력합니다. - 값 필드에 Lingo.dev API 키를 입력합니다.
- 가시성 > 마스킹됨을 선택합니다.
- 변수 추가를 클릭합니다.
GitLab 액세스 토큰
- 설정 > CI/CD로 이동합니다.
- 변수 섹션을 확장합니다.
- 변수 추가를 클릭합니다.
- 키 필드에
GL_TOKEN를 입력합니다. - 값 필드에 GitLab 액세스 토큰을 입력합니다.
- 가시성 > 마스킹됨을 선택합니다.
- 변수 추가를 클릭합니다.
3단계. 워크플로 선택
다양한 워크플로를 지원하기 위해 Lingo.dev CI/CD를 여러 방식으로 설정할 수 있습니다. 다음은 권장하는 워크플로입니다(예제 제공):
- 콘텐츠가
main에 병합되면main에 번역을 커밋 - 콘텐츠가
main에 병합되면main에서 병합 요청 생성 - 콘텐츠가 기능 브랜치에 병합되면 해당 브랜치에 번역을 커밋
- 콘텐츠가 기능 브랜치에 병합되면 해당 브랜치에서 병합 요청 생성
하지만 "최선의" 워크플로우는 없습니다. 모두 장단점이 있습니다. 어디서부터 시작해야 할지 확실하지 않다면, 첫 번째 옵션으로 시작하는 것을 권장합니다. 가장 간단하고 눈에 띄지 않는 워크플로우입니다.
4단계. 파이프라인 설정
-
저장소 루트에
.gitlab-ci.yml파일을 생성합니다:touch .gitlab-ci.yml -
예제 파이프라인 중 하나를 파일에 복사합니다.
-
변경 사항을 커밋하고
main브랜치에 푸시합니다:git add .gitlab-ci.yml git commit -m "feat: GitLab CI pipeline for Lingo.dev" git push
(선택 사항) 5단계. 파이프라인 커스터마이징
Lingo.dev CI/CD는 대부분의 경우 커스터마이징할 필요가 없는 기본값을 가지고 있습니다. 하지만 ci 명령의 CLI 플래그를 사용하여 재정의할 수 있습니다.
npx lingo.dev@latest ci --api-key "$LINGODOTDEV_API_KEY" --commit-message "My custom commit message!"
사용 가능한 모든 옵션을 보려면 CLI 명령을 참조하세요.
예제 파이프라인
main에 커밋
콘텐츠가 main에 병합될 때, 번역을 main에 커밋합니다.
image:
name: lingodotdev/ci-action:latest
entrypoint: [""]
stages: [translate]
translate:
stage: translate
script:
- npx lingo.dev@latest ci --api-key "$LINGODOTDEV_API_KEY"
only:
- main
main에서 병합 요청
콘텐츠가 main에 병합될 때, main에서 병합 요청을 생성합니다.
image:
name: lingodotdev/ci-action:latest
entrypoint: [""]
stages: [translate]
translate:
stage: translate
script:
- npx lingo.dev@latest ci --pull-request --api-key "$LINGODOTDEV_API_KEY"
only:
- main
기능 브랜치에 커밋
콘텐츠가 기능 브랜치에 병합될 때, 번역을 해당 브랜치에 커밋합니다.
image:
name: lingodotdev/ci-action:latest
entrypoint: [""]
stages: [translate]
translate:
stage: translate
script:
- npx lingo.dev@latest ci --api-key "$LINGODOTDEV_API_KEY"
only:
- branches
except:
- main
기능 브랜치에서 병합 요청
콘텐츠가 기능 브랜치에 병합될 때, 해당 브랜치에서 병합 요청을 생성합니다.
image:
name: lingodotdev/ci-action:latest
entrypoint: [""]
stages: [translate]
translate:
stage: translate
script:
- npx lingo.dev@latest ci --pull-request --api-key "$LINGODOTDEV_API_KEY"
except:
- main