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

  1. В левом сайдбаре выберите свой аватар.

  2. Выберите Edit profile.

  3. В левом сайдбаре выберите Access tokens.

  4. Нажмите Add new token.

  5. В Token name введите имя токена (например, "Lingo.dev").

  6. Включите следующие области доступа.

    • api
    • read_repository
    • write_repository
  7. Нажми Создать персональный токен доступа.

Токены доступа проекта

  1. Перейди в нужный проект в GitLab.

  2. Выбери Настройки > Токены доступа.

  3. Нажми Добавить новый токен.

  4. В поле Имя токена введи название.

  5. Выбери роль для токена.

  6. Включи следующие области доступа.

    • api
    • read_repository
    • write_repository
  7. Нажми Создать токен доступа проекта.

Шаг 2. Настрой переменные CI/CD

В GitLab переменные CI/CD позволяют пайплайнам получать доступ к чувствительным данным. Чтобы использовать Lingo.dev в GitLab CI/CD, и API-ключ Lingo.dev, и токен доступа GitLab должны быть доступны как переменные.

Внимание: По умолчанию переменные CI/CD доступны только на защищённых ветках. Если ты не используешь защищённые ветки, отключи опцию Защитить переменную при создании переменных.

API-ключ Lingo.dev

  1. Перейди в Настройки > CI/CD.
  2. Разверни раздел Переменные.
  3. Кликни Добавить переменную.
  4. В поле Ключ введи LINGODOTDEV_API_KEY.
  5. В поле Значение введи API-ключ Lingo.dev.
  6. Выбери Видимость > Скрыто.
  7. Кликни Добавить переменную.

Токен доступа GitLab

  1. Перейди в Настройки > CI/CD.
  2. Разверни раздел Переменные.
  3. Кликни Добавить переменную.
  4. В поле Ключ введи GL_TOKEN.
  5. В поле Значение введи токен доступа GitLab.
  6. Выбери Видимость > Скрыто.
  7. Кликни Добавить переменную.

Шаг 3. Выбери рабочий процесс

Ты можешь настроить Lingo.dev CI/CD по-разному для поддержки разных рабочих процессов. Вот некоторые из рекомендуемых нами вариантов (и примеры):

  • Когда содержимое объединяется в main, коммить переводы в main
  • Когда содержимое объединяется в main, создай merge request из main
  • Когда содержимое объединяется в feature-ветку, коммить переводы в эту ветку
  • Когда содержимое объединяется в feature-ветку, создай merge request из этой ветки

Но не существует «лучшего» workflow. У каждого есть свои плюсы и минусы. Если не знаете, с чего начать, советуем выбрать первый вариант — он самый простой и незаметный.

Шаг 4. Настройте pipeline

  1. В корне репозитория создайте файл .gitlab-ci.yml:

    touch .gitlab-ci.yml
    
  2. Скопируйте один из примеров pipeline в этот файл.

  3. Зафиксируйте и отправьте изменения в ветку 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