GitLab CI/CD
AI-перевод с помощью GitLab CI/CD и Lingo.dev CI/CD
Что такое GitLab CI/CD?
GitLab CI/CD — это платформа для непрерывной интеграции и доставки, встроенная в GitLab. Она позволяет пользователям определять пайплайны в YAML-файлах для сборки, тестирования и деплоя кода или автоматизации задач, запускаемых событиями в репозитории.
Что такое Lingo.dev CI/CD?
Lingo.dev CI/CD — это инструмент на базе ИИ для локализации приложений и контента в CI/CD, который гарантирует, что переводы всегда актуальны. Построен на базе Lingo.dev CLI и доступен через команду ci:
npx lingo.dev@latest ci --help
О данном руководстве
В этом гайде объясняется, как настроить Lingo.dev CI/CD с GitLab CI/CD и Lingo.dev Engine.
Шаг 1. Установка Lingo.dev CLI
Для начала следуйте быстрому старту для Lingo.dev CLI.
В итоге у вас будет:
- API-ключ для Lingo.dev
i18n.jsonфайл, который настраивает поведение пайплайна перевода- возможность переводить контент с помощью
npx lingo.dev@latest run
Шаг 2. Получение access token
В GitLab CI/CD для выполнения определённых действий в пайплайне требуется access token (токен доступа).
Существует два типа access token:
Можно использовать любой, но только personal access tokens доступны для бесплатных пользователей GitLab.
Personal access tokens
-
В левом сайдбаре выберите свой аватар.
-
Выберите Edit profile.
-
В левом сайдбаре выберите Access tokens.
-
Нажмите Add new token.
-
В Token name введите имя токена (например, "Lingo.dev").
-
Включите следующие области доступа.
apiread_repositorywrite_repository
-
Нажми Создать персональный токен доступа.
Токены доступа проекта
-
Перейди в нужный проект в GitLab.
-
Выбери Настройки > Токены доступа.
-
Нажми Добавить новый токен.
-
В поле Имя токена введи название.
-
Выбери роль для токена.
-
Включи следующие области доступа.
apiread_repositorywrite_repository
-
Нажми Создать токен доступа проекта.
Шаг 2. Настрой переменные CI/CD
В GitLab переменные CI/CD позволяют пайплайнам получать доступ к чувствительным данным. Чтобы использовать Lingo.dev в GitLab CI/CD, и API-ключ Lingo.dev, и токен доступа GitLab должны быть доступны как переменные.
Внимание: По умолчанию переменные CI/CD доступны только на защищённых ветках. Если ты не используешь защищённые ветки, отключи опцию Защитить переменную при создании переменных.
API-ключ Lingo.dev
- Перейди в Настройки > CI/CD.
- Разверни раздел Переменные.
- Кликни Добавить переменную.
- В поле Ключ введи
LINGODOTDEV_API_KEY. - В поле Значение введи API-ключ Lingo.dev.
- Выбери Видимость > Скрыто.
- Кликни Добавить переменную.
Токен доступа GitLab
- Перейди в Настройки > CI/CD.
- Разверни раздел Переменные.
- Кликни Добавить переменную.
- В поле Ключ введи
GL_TOKEN. - В поле Значение введи токен доступа GitLab.
- Выбери Видимость > Скрыто.
- Кликни Добавить переменную.
Шаг 3. Выбери рабочий процесс
Ты можешь настроить Lingo.dev CI/CD по-разному для поддержки разных рабочих процессов. Вот некоторые из рекомендуемых нами вариантов (и примеры):
- Когда содержимое объединяется в
main, коммить переводы вmain - Когда содержимое объединяется в
main, создай merge request изmain - Когда содержимое объединяется в feature-ветку, коммить переводы в эту ветку
- Когда содержимое объединяется в feature-ветку, создай merge request из этой ветки
Но не существует «лучшего» workflow. У каждого есть свои плюсы и минусы. Если не знаете, с чего начать, советуем выбрать первый вариант — он самый простой и незаметный.
Шаг 4. Настройте pipeline
-
В корне репозитория создайте файл
.gitlab-ci.yml:touch .gitlab-ci.yml -
Скопируйте один из примеров pipeline в этот файл.
-
Зафиксируйте и отправьте изменения в ветку
main:git add .gitlab-ci.yml git commit -m "feat: GitLab CI pipeline for Lingo.dev" git push
(Необязательно) Шаг 5. Кастомизация pipeline
Lingo.dev CI/CD использует значения по умолчанию, которые в большинстве случаев менять не нужно. Но вы можете переопределить их с помощью CLI-флагов команды ci,
npx lingo.dev@latest ci --api-key "$LINGODOTDEV_API_KEY" --commit-message "My custom commit message!"
Чтобы посмотреть все доступные опции, загляните в CLI команды.
Примеры pipeline
Коммит в 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
Merge request из main
Когда контент объединяется в main, создавайте merge request из 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
Коммит в feature-ветку
Когда контент объединяется в feature-ветку, отправляйте переводы в эту ветку.
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
Merge request из feature-ветки
Когда контент объединяется в feature-ветку, создавайте merge request из этой ветки.
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