GitLab CI/CD
Traduction IA avec GitLab CI/CD et Lingo.dev CI/CD
Qu'est-ce que GitLab CI/CD ?
GitLab CI/CD est une plateforme d'intégration et de déploiement continus intégrée à GitLab. Elle permet aux utilisateurs de définir des pipelines 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 en CI/CD, garantissant que les traductions ne deviennent 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 GitLab CI/CD et Lingo.dev Engine.
Étape 1. Configurer Lingo.dev CLI
Pour commencer, suivez le 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. Obtenir un jeton d'accès
Dans GitLab CI/CD, un jeton d'accès est requis pour effectuer certaines actions au sein d'un pipeline.
Il existe deux types de jetons d'accès :
L'un ou l'autre peut être utilisé, mais seuls les jetons d'accès personnels sont disponibles pour les utilisateurs non payants de GitLab.
Jetons d'accès personnels
-
Dans la barre latérale gauche, sélectionnez votre avatar.
-
Sélectionnez Modifier le profil.
-
Dans la barre latérale gauche, sélectionnez Jetons d'accès.
-
Sélectionnez Ajouter un nouveau jeton.
-
Dans Nom du jeton, saisissez un nom pour le jeton (par exemple, « Lingo.dev »).
-
Activez les portées suivantes.
apiread_repositorywrite_repository
-
Sélectionnez Créer un jeton d'accès personnel.
Jetons d'accès de projet
-
Accédez à un projet dans GitLab.
-
Sélectionnez Paramètres > Jetons d'accès.
-
Sélectionnez Ajouter un nouveau jeton.
-
Dans Nom du jeton, saisissez un nom.
-
Sélectionnez un rôle pour le jeton.
-
Activez les portées suivantes.
apiread_repositorywrite_repository
-
Sélectionnez Créer un jeton d'accès de projet.
Étape 2. Configurer les variables CI/CD
Dans GitLab, les variables CI/CD permettent aux pipelines d'accéder à des valeurs sensibles. Pour utiliser Lingo.dev dans GitLab CI/CD, la clé API Lingo.dev et le jeton d'accès GitLab doivent être disponibles en tant que variables.
Avertissement : par défaut, les variables CI/CD ne sont disponibles que sur les branches protégées. Si vous n'utilisez pas de branches protégées, désactivez l'option Protéger la variable lors de la création des variables.
Clé API Lingo.dev
- Accédez à Paramètres > CI/CD.
- Développez la section Variables.
- Cliquez sur Ajouter une variable.
- Dans le champ Clé, saisissez
LINGODOTDEV_API_KEY. - Dans le champ Valeur, saisissez une clé API Lingo.dev.
- Sélectionnez Visibilité > Masquée.
- Cliquez sur Ajouter une variable.
Jeton d'accès GitLab
- Accédez à Paramètres > CI/CD.
- Développez la section Variables.
- Cliquez sur Ajouter une variable.
- Dans le champ Clé, saisissez
GL_TOKEN. - Dans le champ Valeur, saisissez un jeton d'accès GitLab.
- Sélectionnez Visibilité > Masquée.
- Cliquez sur Ajouter une variable.
É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-uns des workflows que nous recommandons (et pour lesquels nous fournissons des exemples) :
- Lorsque du contenu est fusionné dans
main, commiter les traductions versmain - Lorsque du contenu est fusionné dans
main, créer une merge request depuismain - Lorsque du contenu est fusionné dans une branche de fonctionnalité, commiter les traductions vers la branche
- Lorsque du contenu est fusionné dans une branche de fonctionnalité, créer une merge request depuis la branche
Mais il n'existe pas de workflow « idéal ». Tous comportent des compromis. Si vous ne savez pas par où commencer, nous recommandons de débuter avec la première option. C'est le workflow le plus simple et le plus transparent.
Étape 4. Configurer le pipeline
-
À la racine du dépôt, créez un fichier
.gitlab-ci.yml:touch .gitlab-ci.yml -
Copiez l'un des exemples de pipelines dans le fichier.
-
Validez et poussez les modifications vers la branche
main:git add .gitlab-ci.yml git commit -m "feat: GitLab CI pipeline for Lingo.dev" git push
(Optionnel) Étape 5. Personnaliser le pipeline
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 toutefois les remplacer en utilisant les flags CLI de la commande ci,
npx lingo.dev@latest ci --api-key "$LINGODOTDEV_API_KEY" --commit-message "My custom commit message!"
Pour consulter toutes les options disponibles, voir Commandes CLI.
Exemples de pipelines
Commit vers main
Lorsque du contenu est fusionné dans main, valider les traductions dans main.
image:
name: lingodotdev/ci-action:latest
entrypoint: [""]
stages: [translate]
translate:
stage: translate
script:
- npx lingo.dev@latest ci --api-key "$LINGODOTDEV_API_KEY"
only:
- main
Merge request depuis main
Lorsque du contenu est fusionné dans main, créer une demande de fusion à partir de main.
image:
name: lingodotdev/ci-action:latest
entrypoint: [""]
stages: [translate]
translate:
stage: translate
script:
- npx lingo.dev@latest ci --pull-request --api-key "$LINGODOTDEV_API_KEY"
only:
- main
Commit vers une branche de fonctionnalité
Lorsque du contenu est fusionné dans une branche de fonctionnalité, valider les traductions dans la branche.
image:
name: lingodotdev/ci-action:latest
entrypoint: [""]
stages: [translate]
translate:
stage: translate
script:
- npx lingo.dev@latest ci --api-key "$LINGODOTDEV_API_KEY"
only:
- branches
except:
- main
Merge request depuis une branche de fonctionnalité
Lorsque du contenu est fusionné dans une branche de fonctionnalité, créer une demande de fusion à partir de la branche.
image:
name: lingodotdev/ci-action:latest
entrypoint: [""]
stages: [translate]
translate:
stage: translate
script:
- npx lingo.dev@latest ci --pull-request --api-key "$LINGODOTDEV_API_KEY"
except:
- main