- 1

DevOps con GitLab para automatizar entregas de software
04:19 - 2

Qué es DevOps y cómo integra desarrollo con operaciones
08:44 - 3

DevOps como ciclo iterativo continuo: etapas y beneficios clave
08:21 - 4

GitLab como plataforma integral para el ciclo de vida DevOps
09:29 - 5

Diferencias clave entre GitLab y GitHub para desarrolladores
03:25
Configuración de GitLab CI para proyectos Angular
Clase 24 de 53 • Curso de DevOps con GitLab
Contenido del curso
- 11

Diferencias entre Agile y Waterfall en desarrollo de software
06:20 - 12

Creación y gestión de issues en GitLab para colaboración eficaz
12:07 - 13

Etiquetas para organizar issues en GitLab
07:30 - 14
Planificación en Gitlab-Pesos
02:40 - 15

Creación y gestión de milestones en GitLab para sprints y releases
07:23 - 16

Boards en GitLab para visualizar flujos de trabajo con issues
06:25 - 17

Service Desk de GitLab para soporte por correo electrónico
08:34 - 18
Planificación en Gitlab-Quick actions
00:33
- 19

Inicialización de Angular con GitLab y test-driven development
06:50 - 20

Merge requests y control de calidad en GitLab
12:24 - 21

Flujo completo de merge requests en GitLab
09:24 - 22

Automatización de flujos de trabajo con GitLab CI
02:59 - 23

GitLab CI: configuración, stages y variables para automatización
10:12 - 24

Configuración de GitLab CI para proyectos Angular
11:53 - 25

Validación de archivos GitLab CI con linter antes del pipeline
09:18 - 26
gitlab-ci.yml
02:33 - 27

Configuración de GitLab Pages para hosting estático con CI
04:26 - 28

Configuración de GitLab Pages para deploy automático de Angular
13:11 - 29

Desarrollo ágil y sus doce principios fundamentales
02:33 - 30

GitLab AutoDevOps: pipelines automatizados con seguridad y calidad
06:26 - 31

Configuración de GitLab Auto DevOps con Kubernetes en Google Cloud
09:39 - 32

Configuración de Auto DevOps en GitLab con Kubernetes
13:38
- 35

DevSecOps: integración de seguridad en el ciclo de desarrollo
06:27 - 36

Autenticación de commits con llaves PGP en GitLab
10:18 - 37

Pruebas estáticas de seguridad en GitLab para detectar vulnerabilidades
08:37 - 38

Análisis de contenedores con GitLab y Clair para detectar vulnerabilidades
03:40 - 39

Análisis de vulnerabilidades en dependencias de NPM, PIP y Composer
05:35 - 40

Pruebas dinámicas de seguridad con DAST en GitLab
06:37 - 41

GitLab Security Dashboard: hub centralizado de vulnerabilidades
04:35
- 42

Continuous Deployment seguro con GitLab y control de riesgos
08:04 - 43

Configuración de ambientes en GitLab para desarrollo industrial
08:08 - 44

Review apps: ambientes efímeros por branch para feedback rápido
13:34 - 45
Estrategias de Distribución
04:29 - 46
Feature Flags
03:07 - 47

Rollback en GitLab para revertir errores en producción
05:14
- 48

Importancia del monitoreo en DevOps y despliegue continuo
04:59 - 49

Métricas de desempeño en GitLab con Prometheus
04:35 - 50

Métricas de salud en GitLab para prevenir fallas de infraestructura
05:44 - 51

Métricas de equipo en GitLab para optimizar workflows de DevOps
05:45 - 52

Integración de GitLab con Sentry para rastrear errores en producción
12:27
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.
// karma.conf.js
module.exports = function (config) {
config.set({
browsers: ['ChromeHeadlessNoSandbox'],
customLaunchers: {
ChromeHeadlessNoSandbox: {
base: 'ChromeHeadless',
flags: ['--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_modulescon expiración de 1 hora. - Activa cache de
node_modulespara acelerar builds.
install dependencies:
stage: install
script:
- npm install
artifacts:
expire_in: 1 hour
paths:
- node_modules/
cache:
key: node_modules
paths:
- node_modules/
¿Cómo instalar Google Chrome y ejecutar npm test?
- Job “test apps”: depende de “Install dependencies”.
- Antes del script, instalar Google Chrome: actualizar paquetes, añadir la llave pública y el repositorio estable, e instalar
google-chrome-stable. - Ejecutar el comando de pruebas:
npm test.
test apps:
stage: test
dependencies:
- install dependencies
before_script:
- apt-get update -y
- apt-get install -y apt-transport-https
# añadir llave pública de Chrome y repositorio estable
# ejemplo:
# - wget -q -O - <URL_llave_publica_chrome> | apt-key add -
# - echo "deb [arch=amd64] <URL_repo_chrome> stable main" > /etc/apt/sources.list.d/google-chrome.list
- apt-get update -y
- apt-get install -y google-chrome-stable
script:
- npm test
Habilidades y conceptos practicados:
- Gestión de trabajo con issue, merge request y branch para trazabilidad y colaboración.
- Configuración de Karma con customLaunchers y Chrome Headless sin sandbox para entornos CI.
- Definición de scripts de npm para separar ejecución local y en CI (test vs test:ci).
- Creación de .gitlab-ci.yml con stages, jobs, artifacts, cache y dependencies para un pipeline reproducible.
- Instalación de Google Chrome en contenedores Linux para ejecutar pruebas de Angular basadas en navegador.
¿Tienes otra estrategia para organizar stages o para instalar Chrome en CI? Comparte tu enfoque y dudas en los comentarios.