La CLI no tiene un comando ci específico. Para localizar en CI tienes dos opciones: dejar que la Lingo.dev GitHub App lo haga del lado del servidor (recomendado en GitHub) o ejecutar lingo push en tu propio pipeline y hacer commit de los resultados.
Opción 1: GitHub App (recomendada)#
Instala la Lingo.dev GitHub App en tu repositorio. Configúrala para que apunte a un .lingo/config.json ya versionado (con un engineId) y reaccionará automáticamente a los pushes y las pull requests: detectará las cadenas fuente que hayan cambiado, las traducirá con tu motor y hará commit de los resultados en la rama o abrirá una pull request. Sin runner, sin secretos de API key y sin lockfile que gestionar.
Opción 2: ejecutar lingo push en tu propio runner#
Cualquier entorno de CI con Node.js 22+ puede ejecutar la CLI directamente. Autentícate con una API key (guardada como secret), haz push y haz commit de los 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 traduce solo lo que ha cambiado desde la última ejecución (registrado en .lingo/lock.json), espera a que termine el proceso y genera los resultados. Si quieres abrir una pull request en lugar de hacer commit en la rama, haz push de los cambios a una rama específica y abre la PR con las herramientas de tu plataforma (por ejemplo, gh pr create).
Verifica antes de desplegar#
Añade un paso de lingo check antes de la compilación para que el pipeline falle si falta la traducción de alguna cadena fuente:
lingo checkVer también#
- GitHub App - Localización continua gestionada, sin runner ni secret.
- lingo push - patrones acotados,
--backfill-missing, comportamiento de reintento. - Configuration -
.lingo/config.jsony el lockfile.
