logoUC
📚Curso disponible

GitHub Actions + Docker Registry

Domina GitHub Actions para CI/CD con Docker: diseña workflows YAML con jobs, steps y matrices; automatiza tests y quality gates; construye y etiqueta imágenes y publícalas en Docker Hub o GitHub Container Registry. Gestiona secretos, environments y acciones reutilizables, aprovecha cache y artefacts, y realiza despliegues simples a contenedores/VMs con gates y approvals. Cierra con buenas prácticas de seguridad, permisos mínimos y versionado.

10
Módulos

Contenido del curso

Tema 1 - Fundamentos de GitHub Actions y Workflows YAML

10 lecciones
1.1. ¿Qué es GitHub Actions y para qué sirve?
1.2. Componentes clave: workflow, job, step, action
1.3. Estructura básica de un archivo workflow.yml
1.4. Triggers: eventos que disparan un workflow
1.5. Runners: entornos de ejecución
1.6. Uso de acciones preexistentes desde el Marketplace
1.7. Uso de variables de entorno y secretos
1.8. Ejemplo completo: workflow para testear código en cada push
1.9. Debugging de errores y logs de ejecución
1.10. Organización del repositorio: carpetas .github/workflows/

Tema 2 - Automatización de pruebas unitarias y de integración con GitHub Actions

10 lecciones
2.1. Diferencias entre pruebas unitarias e integración
2.2. Preparación del entorno de test en GitHub Actions
2.3. Instalación de dependencias vía npm, pip, maven, etc.
2.4. Ejecución de pruebas unitarias en cada commit
2.5. Control de calidad con linters y validadores
2.6. Visualización de resultados y fallos en la interfaz de GitHub
2.7. Automatización de pruebas de integración con servicios externos
2.8. Matrices de ejecución: múltiples versiones de lenguaje
2.9. Upload de artefactos: logs, cobertura, resultados
2.10. Bloqueo de PRs si fallan los tests

Tema 3 - Construcción de imágenes Docker desde GitHub Actions

10 lecciones
3.1. Introducción a docker build en un entorno CI
3.2. Configuración de permisos para usar Docker en GitHub-hosted runners
3.3. Uso de actions/checkout y preparación del contexto de build
3.4. Definición del job de construcción de imagen
3.5. Etiquetado automático con hash de commit y versión
3.6. Reducción del tiempo de build usando caché
3.7. Validación del Dockerfile antes de build
3.8. Construcción condicional solo en determinadas ramas
3.9. Exportación del resultado como artefacto temporal (opcional)
3.10. Pruebas post-build: ejecución de contenedor de validación

Tema 4 - Publicación de imágenes en Docker Hub

10 lecciones
4.1. Introducción a Docker Hub como registro público/privado
4.2. Creación de un access token en Docker Hub
4.3. Almacenamiento seguro del usuario y token en GitHub Secrets
4.4. Uso de docker login desde GitHub Actions
4.5. Etiquetado correcto de la imagen para Docker Hub
4.6. Uso de docker push para publicar la imagen
4.7. Automatización para latest y versiones semánticas (vX.Y.Z)
4.8. Condicionar el push a ramas principales o tags
4.9. Verificación post-push: validación con docker pull
4.10. Troubleshooting de errores comunes al subir imágenes

Tema 5 - Publicación de imágenes en GitHub Container Registry (GHCR)

10 lecciones
5.1. ¿Qué es GitHub Container Registry (ghcr.io)?
5.2. Diferencias clave entre GHCR y Docker Hub
5.3. Activación del uso de GHCR en nuestra cuenta o organización
5.4. Uso del token de GitHub (secrets.GITHUB_TOKEN) para autenticación
5.5. Etiquetado correcto para GHCR: ghcr.io/usuario/repositorio
5.6. docker push automatizado a GHCR desde GitHub Actions
5.7. Gestión de versiones y etiquetas múltiples en GHCR
5.8. Visibilidad y permisos en GHCR: privada vs pública
5.9. Limpieza automática de imágenes antiguas con ghcr-cleaner u otras acciones
5.10. Visualización y control de imágenes desde GitHub UI

Tema 6 - Pipeline completo CI/CD: test, build, push y despliegue

10 lecciones
6.1. Definición general de un pipeline CI/CD automatizado
6.2. Estructura recomendada del archivo .github/workflows/ci-cd.yml
6.3. Job 1 — Checkout + Instalación de dependencias + Linter
6.4. Job 2 — Pruebas unitarias y de integración con contenedores
6.5. Job 3 — Build de imagen Docker
6.6. Job 4 — Push automático a Docker Hub o GHCR
6.7. Job 5 — Despliegue automático (opcional)
6.8. Uso de if: y matrix para controlar ejecución condicional
6.9. Generación de artefactos: cobertura, binarios, logs
6.10. Notificaciones del estado del pipeline

Tema 7 - Despliegue automatizado con GitHub Actions y SSH remoto

10 lecciones
7.1. Introducción al despliegue remoto vía SSH
7.2. Requisitos previos en el servidor destino (SSH + Docker)
7.3. Generación de clave SSH para CI/CD
7.4. Almacenamiento seguro de la clave privada en GitHub Secrets
7.5. Instalación de la acción appleboy/ssh-action
7.6. Pull de la imagen Docker desde Docker Hub o GHCR
7.7. Parada de contenedor antiguo y lanzamiento de nuevo contenedor
7.8. Variables de entorno y volúmenes en el nuevo despliegue
7.9. Validación del despliegue: respuesta de la app o ping
7.10. Hardening y seguridad del flujo SSH

Tema 8 - Envío automático de notificaciones tras el despliegue

10 lecciones
8.1. Importancia de notificar el estado del CI/CD
8.2. Métodos de notificación compatibles con GitHub Actions
8.3. Configuración de Webhooks en Slack
8.4. Uso de 8398a7/action-slack para integraciones sencillas
8.5. Envío de correos electrónicos automáticos desde CI/CD
8.6. Notificaciones en Microsoft Teams vía Webhook
8.7. Integración con Discord o Telegram para alertas técnicas
8.8. Uso de expresiones condicionales para evitar SPAM
8.9. Inclusión de logs, versiones y enlaces útiles en la notificación
8.10. Buenas prácticas para mantener limpias y útiles las notificaciones

Tema 9 - Deploy multientorno (dev, staging, producción)

10 lecciones
9.1. Qué es un entorno (environment) en CI/CD
9.2. Definición de entornos en GitHub: environments en el repositorio
9.3. Despliegue condicional según la rama (main, develop, release/*)
9.4. Uso de matrices de entornos (matrix) para evitar duplicación
9.5. Separación de secretos por entorno en GitHub
9.6. Revisión manual antes del despliegue en producción
9.7. Estrategia de tags para versiones (vX.Y.Z, rc, beta)
9.8. Separación lógica de recursos (puertos, rutas, dominios)
9.9. Plantillas .env por entorno y volcado automático desde secrets
9.10. Monitorización y rollback según entorno

Tema 10 - Seguridad en Workflows y Protección de Secrets

10 lecciones
10.1. Principales riesgos de seguridad en workflows de CI/CD
10.2. Restricción de ejecución en repositorios públicos y forks
10.3. Evitar exposición de secretos en los logs
10.4. Uso de secrets.GITHUB_TOKEN y su alcance
10.5. Revisión periódica de los GitHub Secrets
10.6. Activación de environments protegidos con revisores
10.7. Protección de ramas (branch protection rules)
10.8. Uso de roles con permisos mínimos (principio de menor privilegio)
10.9. Dependabot y escaneo de seguridad automático
10.10. Validación de entradas del usuario en workflows (inputs y dispatch)

¿Listo para empezar?

Aprende a desarrollar desde 0 con IA integrada. Practica, resuelve retos reales, con correcciones inmediatas y completamente tutorizado.