Automatiza con confianza: aquí verás cómo llevar una app de Angular a GitLab CI paso a paso, desde el flujo con issue y merge request hasta la configuración de Chrome Headless y un pipeline funcional con artifacts y cache. Sin trucos, solo lo esencial que se implementó.
¿Cómo iniciar el flujo con issue y merge request en GitLab?
Para asegurar trazabilidad y colaboración, se comienza creando un issue y luego un merge request que genera el branch de trabajo. Así cada cambio queda vinculado a una tarea clara.
¿Qué datos clave define el issue de automatización?
Título: “Generar integración con GitLab CI”.
Archivo a crear: .gitlab-ci.yml.
Milestone: 1.
Label: Infrastructure.
Peso: 5.
Acción: Submit para registrar y avanzar.
¿Cómo crear el merge request y el branch de trabajo?
Generar el merge request desde el issue.
Se crea el branch “5, Generar integración con GitLab CI”.
Beneficio: un espacio aislado para cambios, listo para revisión.
¿Cómo preparar la consola y verificar el branch?
Limpiar consola y cambiar a Master.
Ejecutar: git pull para traer cambios remotos.
Crear y ligar el nuevo branch al remoto.
Verificar que estás en el branch correcto antes de editar.
¿Cómo adaptar los tests de Angular a Chrome Headless en CI?
En Continuous Integration no hay interfaz gráfica. Por eso se ejecutan los tests en Chrome Headless con un custom launcher “sin sandbox”. Esto evita fallas al correr en contenedores Linux.
¿Qué cambios aplicar en Karma con custom launchers?
Cambiar el navegador por defecto a ChromeHeadlessNoSandbox.
Declarar un custom launcher con base en ChromeHeadless y flag --no-sandbox.
¿Cómo definir el script npm test:ci con watch false?
Mantener el script de pruebas normal.
Añadir un nuevo script para CI que ejecute una sola vez y use el navegador correcto.
{"scripts":{"test":"ng test","test:ci":"ng test --watch=false --browsers=ChromeHeadlessNoSandbox"}}
Opcional: agregar bandera de Code Coverage si se requiere.
¿Qué verificación rápida asegura que los tests corren?
Ejecutar: npm run test:ci.
Si falla por nombre del navegador, validar coincidencia exacta: ChromeHeadlessNoSandbox. Corregir y volver a correr hasta ver los tests pasar.
¿Cómo escribir .gitlab-ci.yml con stages, artifacts y tests?
El objetivo es instalar dependencias, compartirlas entre jobs y ejecutar tests en Chrome Headless dentro del pipeline. Se usan dos stages: install y test.
¿Qué imagen y stages usa el pipeline?
Imagen base: Node 11.1.0.
Stages: install y test.
image: node:11.1.0
stages:- install
- test
¿Cómo instalar dependencias y compartir node_modules con artifacts y cache?
Job “Install dependencies”: corre npm install.
Exporta artifacts de node_modules con expiración de 1 hora.
Activa cache de node_modules para acelerar builds.