GitHub Actions
Traduction IA avec GitHub Actions et Lingo.dev CI/CD
Qu'est-ce que GitHub Actions ?
GitHub Actions est une plateforme de CI/CD et d'automatisation intégrée à GitHub. Elle permet aux utilisateurs de définir des workflows dans des fichiers YAML pour construire, tester et déployer du code ou automatiser des tâches déclenchées par des événements du dépôt.
Qu'est-ce que Lingo.dev CI/CD ?
Lingo.dev CI/CD est un outil alimenté par l'IA pour localiser des applications et du contenu dans un environnement CI/CD, garantissant que les traductions ne sont jamais obsolètes. Il est construit sur Lingo.dev CLI et disponible via la commande ci :
npx lingo.dev@latest ci --help
À propos de ce guide
Ce guide explique comment configurer Lingo.dev CI/CD avec GitHub Actions et Lingo.dev Engine.
Étape 1. Configurer Lingo.dev CLI
Pour commencer, suivez le Guide de démarrage rapide pour Lingo.dev CLI.
Vous devriez obtenir :
- une clé API pour Lingo.dev
- un fichier
i18n.jsonqui configure le comportement d'un pipeline de traduction - la capacité de traduire du contenu avec
npx lingo.dev@latest run
Étape 2. Configurer un secret de dépôt
- Naviguez vers Settings > Secrets and variables > Actions.
- Cliquez sur New repository secret.
- Dans le champ Name, saisissez
LINGODOTDEV_API_KEY. - Dans le champ Secret, saisissez une clé API Lingo.dev.
- Cliquez sur Add secret.
Étape 3. Choisir un workflow
Vous pouvez configurer Lingo.dev CI/CD de différentes manières pour prendre en charge différents workflows. Voici quelques workflows que nous recommandons (et pour lesquels nous fournissons des exemples) :
- Lorsque du contenu est fusionné dans
main, commit des traductions dansmain - Lorsque du contenu est fusionné dans
main, création d'une pull request à partir demain - Lorsque du contenu est fusionné dans une branche de fonctionnalité, commit des traductions dans la branche
- Lorsque du contenu est fusionné dans une branche de fonctionnalité, création d'une pull request à partir de la branche
Mais il n'y a pas de workflow "idéal". Ils présentent tous des compromis. Si vous ne savez pas par où commencer, nous vous recommandons de débuter avec la première option. C'est le workflow le plus simple et le plus transparent.
Étape 4. Configurer le workflow
-
Dans le dépôt, créez un répertoire
.github/workflows:mkdir -p .github/workflowsAssurez-vous d'inclure le
.au début de.github. -
Dans le répertoire
.github/workflows, créez un fichier YAML :touch .github/workflows/translate.ymlLe nom du fichier n'est pas important.
-
Copiez l'un des workflows d'exemple dans le fichier.
-
Si le workflow crée des pull requests :
- Accédez à Settings > Actions > General.
- Activez Allow GitHub Actions to create and approve pull requests.
- Cliquez sur Save.
-
Committez et poussez les modifications vers la branche
main:git add .github/workflows/translate.yml git commit -m "feat: GitHub action for Lingo.dev" git push
(Optionnel) Étape 5. Personnaliser le workflow
Lingo.dev CI/CD possède des valeurs par défaut qui, dans la plupart des cas, n'ont pas besoin d'être personnalisées. Vous pouvez, cependant, les remplacer en utilisant les flags CLI de la commande ci,
npx lingo.dev@latest ci --api-key "$LINGODOTDEV_API_KEY" --commit-message "Mon message de commit personnalisé !"
Pour voir toutes les options disponibles, consultez Commandes CLI.
Workflows d'exemple
Commit vers main
Lorsque du contenu est fusionné dans main, les traductions sont committées vers main.
name: Translate
on:
push:
branches: [main]
permissions:
contents: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Lingo.dev
run: npx lingo.dev@latest ci --api-key "$LINGODOTDEV_API_KEY"
env:
LINGODOTDEV_API_KEY: ${{ secrets.LINGODOTDEV_API_KEY }}
Pull request depuis main
Lorsque du contenu est fusionné dans main, une pull request est créée depuis main.
name: Translate
on:
push:
branches: [main]
permissions:
contents: write
pull-requests: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Lingo.dev
run: npx lingo.dev@latest ci --pull-request --api-key "$LINGODOTDEV_API_KEY"
env:
LINGODOTDEV_API_KEY: ${{ secrets.LINGODOTDEV_API_KEY }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Commit vers une branche de fonctionnalité
Lorsque du contenu est fusionné dans une branche de fonctionnalité, les traductions sont commitées directement dans cette branche.
name: Translate
on:
push:
branches-ignore: [main]
permissions:
contents: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Lingo.dev (commit to non-main)
run: npx lingo.dev@latest ci --api-key "$LINGODOTDEV_API_KEY"
env:
LINGODOTDEV_API_KEY: ${{ secrets.LINGODOTDEV_API_KEY }}
Pull request depuis une branche de fonctionnalité
Lorsque du contenu est fusionné dans une branche de fonctionnalité, une pull request est créée à partir de cette branche.
name: Translate
on:
push:
branches-ignore: [main]
permissions:
contents: write
pull-requests: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Lingo.dev
run: npx lingo.dev@latest ci --pull-request --api-key "$LINGODOTDEV_API_KEY"
env:
LINGODOTDEV_API_KEY: ${{ secrets.LINGODOTDEV_API_KEY }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}