Cargando Portfolio

Preparando la experiencia...

0%
Volver al portafolio
DevOps / CI-CD

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.