La CLI ne propose pas de commande ci dédiée. Pour localiser dans la CI, deux possibilités : laisser la Lingo.dev GitHub App s’en charger côté serveur (recommandé sur GitHub), ou exécuter lingo push dans votre propre pipeline et valider les résultats.
Option 1 : GitHub App (recommandée)#
Installez la Lingo.dev GitHub App sur votre dépôt. Pointez-la vers un .lingo/config.json déjà validé (avec un engineId) ; elle réagit automatiquement aux pushes et aux pull requests, détecte les chaînes source modifiées, les traduit via votre moteur, puis valide les résultats sur la branche ou ouvre une pull request. Aucun runner, aucun secret de clé API, aucun lockfile à gérer.
Option 2 : exécuter lingo push dans votre propre runner#
N’importe quel environnement CI avec Node.js 22+ peut exécuter la CLI directement. Authentifiez-vous avec une clé API (stockée comme secret), lancez le push, puis validez les fichiers générés.
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 traduit uniquement ce qui a changé depuis la dernière exécution (suivi dans .lingo/lock.json), attend la fin du run, puis écrit les fichiers de sortie. Pour ouvrir une pull request au lieu de valider directement sur la branche, poussez les modifications vers une branche dédiée et ouvrez la PR avec les outils de votre plateforme (par ex. gh pr create).
Vérifiez avant de déployer#
Ajoutez une étape lingo check avant le build pour faire échouer le pipeline dès qu’une chaîne source n’a pas de traduction :
lingo checkÀ voir aussi#
- GitHub App - Localisation continue gérée, sans runner ni secret.
- lingo push - patterns ciblés,
--backfill-missing, comportement de nouvelle tentative. - Configuration -
.lingo/config.jsonet le lockfile.
