Plantillas CI/CD Reutilizables
Repositorio privado en GitLab que centraliza plantillas de CI/CD para múltiples stacks (Angular, Node.js, Laravel, Flutter y flujos de base de datos). El objetivo es estandarizar validaciones, construcción de imágenes, despliegues automatizados y estrategias de merge/rollback para los proyectos internos de Edw Dev.
Descripción del Proyecto
El repositorio ci-templates agrupa plantillas reutilizables para GitLab CI que
comparten la misma filosofía: pipelines declarativos, etapas desacopladas y scripts versionados
para estandarizar todo el ciclo de vida de despliegues. La estructura se divide en templates/
(pipelines por stack), stages/ (etapas modulares), scripts/ (Bash y Python) y
docs/ para onboarding.
Cada plantilla incluye el bootstrap necesario para clonar el repositorio central mediante
GITLAB_ACCESS_TOKEN, instalar dependencias (apk/pip) y ejecutar scripts internos. De esta manera
los proyectos sólo referencian el include remoto y heredan validaciones, builds y despliegues consistentes.
Características Principales
- Soporte multi-stack: Angular, Node.js, Laravel, Flutter y pipelines para cambios en bases de datos.
- Etapas modulares para validate → build/test → deploy → merge reutilizables en cualquier proyecto.
- Validaciones automáticas de commits, versiones JSON/XML y archivos clave antes de permitir un merge.
- Construcción de imágenes Docker y ejecución de pruebas en contenedores DinD.
- Despliegues remotos mediante Python + SSH con control de variables por entorno (test/prod) y rollback.
- Plantillas para merge automático de ramas, creación de tags y versionado semántico.
- Documentación y ejemplos centralizados para integrarlo sólo con un include en
.gitlab-ci.yml.
Stacks Soportados
Angular
Plantillas para desplegar frontends a R2/Cloudflare con workflows de rollback y reemplazo de variables.
Node.js / APIs
Jobs para validar versiones, generar imágenes Docker (test/prod) y publicar en servidores Linux.
Laravel / PHP
Secuencias para ejecutar migraciones, empacar assets y desplegar con zero-downtime.
Flutter
Stages para construir aplicaciones móviles (APK/AAB) y gestionar firma o distribución.
Database pipelines
Control de scripts SQL y validaciones previas antes de aplicar cambios críticos.
Scripts reutilizables
Colección de scripts Bash/Python para validaciones, despliegues, merge y tagging automatizado.
Plantillas en Acción
Algunos de los pipelines empaquetados listos para ser incluidos en cualquier .gitlab-ci.yml.
Flujo del Pipeline
- Validate: scripts para verificar número de commits, bump de versión y estructura de archivos (
app.version.json, XML, etc.). - Build & Tests: ejecución de linters/tests, empaquetado y construcción de imágenes Docker con variables por entorno.
- Deploy: despliegues manuales/automáticos a servidores de prueba o producción reutilizando
deploy.py. - Merge & Release: plantillas para mergear ramas, crear tags y generar artefactos listos para release.
Automatizaciones Destacadas
Validación de versiones
Scripts en Bash y Python que aseguran versiones semánticas válidas en JSON/XML antes de liberar.
Control de commits
Validación del número de commits entre ramas y verificación de archivos actualizados para evitar merges incompletos.
Despliegue remoto
Uso de DinD + SSH para conectarse a servidores Linux, levantar contenedores, ejecutar docker-compose y soportar rollback.
Documentación y Onboarding
El directorio docs/ incluye ejemplos de include, variables requeridas y checklists para nuevos proyectos.
Con solo unas líneas en .gitlab-ci.yml se importan los pipelines, logrando un onboarding inferior a 15 minutos y
reduciendo la dependencia del equipo DevOps en proyectos pequeños.
Además, los ejemplos muestran cómo heredar scripts personalizados (como check-commits.sh o
deploy/pull-and-up.sh) para extender el pipeline sin duplicar lógica.