A CLI não tem um comando ci dedicado. Para fazer localização em CI, tem duas opções: deixar que a Lingo.dev GitHub App trate de tudo 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 a Lingo.dev GitHub App no seu repositório. Aponte-a para um .lingo/config.json já em commit (com um engineId) e ela reage automaticamente a pushes e pull requests — deteta as strings de origem alteradas, traduz-las através do seu motor e faz commit dos resultados de volta para a branch ou abre um pull request. Sem runner, sem chave de API em segredo e sem lockfile para gerir.
Opção 2: executar 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 (guardada como segredo), faça push e commit dos resultados.
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 pushlingo push traduz apenas o que mudou desde a última execução (registado em .lingo/lock.json), aguarda que a execução termine e escreve os resultados. Para abrir um pull request em vez de fazer commit na branch, faça push das alterações para uma branch dedicada e abra o PR com as ferramentas da sua plataforma (por exemplo, gh pr create).
Verifique antes do deploy#
Adicione um passo lingo check antes da build para fazer falhar o pipeline sempre que alguma string de origem não tiver tradução:
lingo checkVer também#
- GitHub App - Localização Contínua gerida, sem runner nem segredo.
- lingo push - padrões com âmbito definido,
--backfill-missing, comportamento de repetição. - Configuration -
.lingo/config.jsone o lockfile.
