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 dans 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 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 nécessaire pour effectuer certaines actions au sein d'un pipeline.
Il existe deux types de jetons d'accès :
Les deux peuvent être utilisés, 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, entrez un nom pour le jeton (par exemple, "Lingo.dev").
-
Activez les périmètres suivants.
apiread_repositorywrite_repository
-
Sélectionnez Créer un jeton d'accès personnel.
Jetons d'accès au 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 périmètres suivants.
apiread_repositorywrite_repository
-
Sélectionnez Créer un jeton d'accès au 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 flux de travail
Vous pouvez configurer Lingo.dev CI/CD de différentes manières pour prendre en charge différents flux de travail. Voici quelques-uns des flux de travail que nous recommandons (et pour lesquels nous fournissons des exemples) :
- Lorsque du contenu est fusionné dans
main, valider les traductions dansmain - Lorsque du contenu est fusionné dans
main, créer une demande de fusion à partir demain - Lorsque du contenu est fusionné dans une branche de fonctionnalité, valider les traductions dans la branche
- Lorsque du contenu est fusionné dans une branche de fonctionnalité, créer une demande de fusion à partir de la branche
Mais il n'y a pas de flux de travail "idéal". Ils présentent tous des compromis. Si vous ne savez pas par où commencer, nous vous recommandons de commencer par la première option. C'est le flux de travail 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: Pipeline GitLab CI pour Lingo.dev" git push
(Facultatif) É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, cependant, les remplacer en utilisant les options 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.
Exemples de pipelines
Commit vers main
Lorsque du contenu est fusionné dans main, les traductions sont commitées vers 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
Demande de fusion depuis main
Lorsque du contenu est fusionné dans main, une demande de fusion est créée depuis 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é, les traductions sont commitées vers cette 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
Demande de fusion depuis une branche de fonctionnalité
Lorsque du contenu est fusionné dans une branche de fonctionnalité, une demande de fusion est créée depuis cette 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