CI/CD

Max PrilutskiyCEO e cofundadorAtualizado em: há 2 meses · 1 min de leitura

A CLI não tem um comando ci específico. Para localizar no CI, você tem duas opções: deixar o Lingo.dev GitHub App cuidar disso no servidor (recomendado no GitHub) ou executar lingo push no seu próprio pipeline e fazer commit dos resultados.

Opção 1: GitHub App (recomendado)#

Instale o Lingo.dev GitHub App no seu repositório. Aponte-o para um .lingo/config.json commitado (com um engineId) e ele reagirá automaticamente a pushes e pull requests, detectando strings de origem alteradas, traduzindo-as com seu engine e fazendo commit dos resultados de volta na branch ou abrindo um pull request. Sem runner, sem secret de chave de API e sem lockfile para gerenciar.

Opção 2: rode lingo push no seu próprio runner#

Qualquer ambiente de CI com Node.js 22+ pode executar a CLI diretamente. Autentique-se com uma chave de API (armazenada como secret), faça push e commit dos resultados.

yaml
name: Translate
on:
  push:
    branches: [main]
permissions:
  contents: write
jobs:
  localize:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
      - run: npm install -g @lingo.dev/cli
      - run: lingo push
        env:
          LINGO_API_KEY: ${{ secrets.LINGO_API_KEY }}
      - name: Commit translations
        run: |
          git config user.name "lingo-bot"
          git config user.email "support@lingo.dev"
          git add .
          git diff --cached --quiet || git commit -m "chore: update translations"
          git push

lingo push traduz apenas o que mudou desde a última execução (rastreado em .lingo/lock.json), aguarda a execução terminar e grava os resultados. Para abrir um pull request em vez de fazer commit na branch, envie as alterações para uma branch dedicada e abra o PR com as ferramentas da sua plataforma (por exemplo, gh pr create).

Valide antes do deploy#

Adicione uma etapa lingo check antes do build para fazer o pipeline falhar quando alguma string de origem estiver sem tradução:

bash
lingo check

Veja também#

  • GitHub App - Localização contínua gerenciada, sem runner nem secret.
  • lingo push - padrões com escopo, --backfill-missing, comportamento de retry.
  • Configuration - .lingo/config.json e o lockfile.