GitLab CI/CD
Traducción con IA mediante GitLab CI/CD y Lingo.dev CI/CD
¿Qué es GitLab CI/CD?
GitLab CI/CD es una plataforma de integración y despliegue continuo integrada en GitLab. Permite a los usuarios definir pipelines en archivos YAML para compilar, probar y desplegar código o automatizar tareas activadas por eventos del repositorio.
¿Qué es Lingo.dev CI/CD?
Lingo.dev CI/CD es una herramienta impulsada por IA para localizar aplicaciones y contenido en CI/CD, garantizando que las traducciones nunca queden desactualizadas. Está construida sobre Lingo.dev CLI y está disponible mediante el comando ci:
npx lingo.dev@latest ci --help
Acerca de esta guía
Esta guía explica cómo configurar Lingo.dev CI/CD con GitLab CI/CD y Lingo.dev Engine.
Paso 1. Configurar Lingo.dev CLI
Para comenzar, sigue el inicio rápido de Lingo.dev CLI.
Deberías terminar con:
- una clave API para Lingo.dev
- un archivo
i18n.jsonque configura el comportamiento de un pipeline de traducción - la capacidad de traducir contenido con
npx lingo.dev@latest run
Paso 2. Obtener un token de acceso
En GitLab CI/CD, se requiere un token de acceso para realizar ciertas acciones dentro de un pipeline.
Existen dos tipos de tokens de acceso:
Cualquiera de los dos puede utilizarse, pero solo los tokens de acceso personal están disponibles para usuarios no pagos de GitLab.
Tokens de acceso personal
-
En la barra lateral izquierda, selecciona tu avatar.
-
Selecciona Editar perfil.
-
En la barra lateral izquierda, selecciona Tokens de acceso.
-
Selecciona Añadir nuevo token.
-
En Nombre del token, introduce un nombre para el token (p. ej., "Lingo.dev").
-
Habilita los siguientes ámbitos.
apiread_repositorywrite_repository
-
Selecciona Create personal access token.
Tokens de acceso de proyecto
-
Navega a un proyecto en GitLab.
-
Selecciona Settings > Access tokens.
-
Selecciona Add new token.
-
En Token name, introduce un nombre.
-
Selecciona un rol para el token.
-
Habilita los siguientes scopes.
apiread_repositorywrite_repository
-
Selecciona Create project access token.
Paso 2. Configurar variables de CI/CD
En GitLab, las variables de CI/CD permiten que los pipelines accedan a valores sensibles. Para usar Lingo.dev en GitLab CI/CD, tanto la clave de API de Lingo.dev como el token de acceso de GitLab deben estar disponibles como variables.
Advertencia: Por defecto, las variables de CI/CD solo están disponibles en ramas protegidas. Si no estás usando ramas protegidas, deshabilita la opción Protect variable al crear variables.
Clave de API de Lingo.dev
- Navega a Settings > CI/CD.
- Expande la sección Variables.
- Haz clic en Add variable.
- En el campo Key, introduce
LINGODOTDEV_API_KEY. - En el campo Value, introduce una clave de API de Lingo.dev.
- Selecciona Visibility > Masked.
- Haz clic en Add variable.
Token de acceso de GitLab
- Navega a Settings > CI/CD.
- Expande la sección Variables.
- Haz clic en Add variable.
- En el campo Key, introduce
GL_TOKEN. - En el campo Value, introduce un token de acceso de GitLab.
- Selecciona Visibility > Masked.
- Haz clic en Add variable.
Paso 3. Elegir un flujo de trabajo
Puedes configurar Lingo.dev CI/CD de diferentes maneras para soportar distintos flujos de trabajo. Estos son algunos de los flujos de trabajo que recomendamos (y para los que proporcionamos ejemplos):
- Cuando el contenido se fusiona en
main, se hace commit de las traducciones amain - Cuando el contenido se fusiona en
main, se crea una merge request desdemain - Cuando el contenido se fusiona en una rama de funcionalidad, se hace commit de las traducciones a la rama
- Cuando el contenido se fusiona en una rama de funcionalidad, se crea una merge request desde la rama
Pero no existe un flujo de trabajo "mejor". Todos tienen compromisos. Si no estás seguro de por dónde empezar, recomendamos comenzar con la primera opción. Es el flujo de trabajo más simple e invisible.
Paso 4. Configurar el pipeline
-
En la raíz del repositorio, crea un archivo
.gitlab-ci.yml:touch .gitlab-ci.yml -
Copia uno de los pipelines de ejemplo en el archivo.
-
Confirma y envía los cambios a la rama
main:git add .gitlab-ci.yml git commit -m "feat: GitLab CI pipeline for Lingo.dev" git push
(Opcional) Paso 5. Personalizar el pipeline
Lingo.dev CI/CD tiene valores predeterminados que, en la mayoría de los casos, no necesitan personalizarse. Sin embargo, puedes sobrescribirlos usando los flags CLI del comando ci,
npx lingo.dev@latest ci --api-key "$LINGODOTDEV_API_KEY" --commit-message "My custom commit message!"
Para ver todas las opciones disponibles, consulta comandos CLI.
Pipelines de ejemplo
Confirmar en main
Cuando el contenido se fusiona en main, confirmar traducciones en 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
Solicitud de fusión desde main
Cuando el contenido se fusiona en main, crear una solicitud de fusión desde 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
Confirmar en rama de características
Cuando el contenido se fusiona en una rama de características, confirmar traducciones en la rama.
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
Solicitud de fusión desde rama de características
Cuando el contenido se fusiona en una rama de características, crear una solicitud de fusión desde la rama.
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