CI/CD con GitHub Actions: Tutorial Práctico

Guía práctica de CI/CD con GitHub Actions: pipelines, pruebas, despliegues seguros, OIDC, caches, entornos protegidos y flujos reutilizables para Kubernetes y la nube.

19 ago 2025 • 7 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

Introducción a CI/CD

CI CD significa Integración Continua y Entrega Continua o Despliegue Continuo. Integración Continua automatiza compilaciones, linting, pruebas y empaquetado en cada cambio. Entrega Continua y Despliegue Continuo automatizan la promoción entre entornos como staging y producción, con aprobaciones, feature flags y opciones de rollback. Los beneficios incluyen retroalimentación más rápida, menos regresiones, releases reproducibles y mayor confianza en los despliegues.

Herramientas principales de CI CD

Existen múltiples herramientas: Jenkins para instalaciones autogestionadas, GitLab CI integrado con repositorios GitLab, Azure Pipelines ideal para stacks Microsoft, CircleCI para paralelismo rápido, Bitbucket Pipelines para repos Bitbucket, Buildkite para modelo híbrido, Tekton para pipelines nativos en Kubernetes, Argo CD y Flux para GitOps en Kubernetes, y Spinnaker o Harness para CD multi nube con canary y blue green integrados. GitHub Actions destaca por ser nativo en GitHub, tener un marketplace extenso, runners alojados y experiencia de desarrollador optimizada, además de integraciones de seguridad como OIDC y entornos protegidos.

Conceptos clave en GitHub Actions

Workflow: archivos YAML dentro de .github workflows. Triggers o eventos: push, pull request, workflow dispatch, schedule, release. Job: se ejecuta en un runner y puede depender de otros jobs mediante needs. Step: comando de shell o acción reutilizable como actions checkout. Runners: hospedados por GitHub o self hosted. Artifacts y Caching: para persistencia y velocidad. Environments: dev staging prod con reglas de protección, aprobaciones y secretos. Secrets y Variables con alcance repo org o environment. Permisos: aplicar principio de menor privilegio y usar id token para OIDC cuando sea necesario.

Ejemplo mínimo de CI para Node

Workflow básico que corre en PRs y pushes a main: checkout del código, setup node, cache de npm, npm ci, lint si existe, npm test con reportes. Este flujo da feedback rápido y evita que cambios rotos lleguen a la rama principal.

Variantes para Python y Java

Python: matrix de versiones 3.10 3.11 3.12, setup de python con cache pip, instalar requerimientos y ejecutar pytest generando reporte junit. Java con Gradle: setup java temurin 21 con cache gradle y ejecución de ./gradlew build, subir artifacts como jars para trazabilidad.

Contenedores de servicio para pruebas de integración

Usar servicios en jobs para levantar Postgres y Redis permite correr tests de integración que dependen de bases y caches. Definir health checks y variables de entorno para conectar desde los tests locales del runner.

Caching y artifacts

Usar el cache incorporado de acciones setup node python java o actions cache para caches personalizados como el repositorio maven. Subir artifacts con actions upload artifact para compartir binarios o reportes entre jobs y conservar evidencias de build.

CD básico con entornos aprobados y secretos

Crear entornos dev staging prod en GitHub y agregar secretos específicos por entorno como PROD DB URL. Configurar reglas de protección con revisores requeridos y tiempos de espera. Los jobs de despliegue se pueden condicionar al entorno y emitir id token para OIDC hacia proveedores cloud.

Flujos multi etapa build test deploy

Arquitectura típica: job build que genera imagen o artifact y publica en registry, job test que depende de build y ejecuta suites, job deploy staging que depende de test, job deploy prod que depende de staging y solo corre en tags semver o tras aprobación manual. Usar concurrency para evitar despliegues superpuestos y outputs de jobs para pasar tags de imagen entre etapas.

Despliegues cloud con OIDC sin secretos de larga duración

AWS: usar aws actions configure aws credentials con role to assume y permitir el proveedor OIDC de GitHub en la trust policy. Azure: utilizar Azure federated credentials o azure login action con credenciales federadas. GCP: usar google github actions auth con workload identity provider y cuenta de servicio delegada. OIDC reduce la exposición de claves permanentes y facilita rotación segura.

Terraform en Actions

Automatizar plan en PRs y aplicar solo en main o en entornos protegidos. Guardar el plan como artifact y exigir approval manual en el job apply dentro del entorno prod para control adicional.

Cadena de suministro segura y análisis de código

Habilitar Dependency Review en PRs para revisar cambios en dependencias, ejecutar CodeQL para análisis estático y programar escaneos regulares. Opcionalmente atestiguar la procedencia de contenedores para cumplir prácticas SLSA y mejorar trazabilidad.

Workflows reutilizables y acciones compuestas

Crear reusable workflows que acepten inputs y ejecutar desde otros repos o desde el mismo repo para centralizar pruebas. Usar composite actions para encapsular pasos repetitivos como setup de entorno y dependencias, manteniendo pipelines DRY.

Monorepos y filtros por ruta

En monorepos ejecutar pipelines solo cuando cambian rutas relevantes usando path filters en pull request o push. También construir matrices por servicio para paralelizar pruebas por api web worker y acelerar feedback.

Estrategias de ramas y releases

Recomendado trunk based con ramas cortas, PRs a main y feature flags. GitFlow aporta más procesos para equipos que lo requieran. Usar tags semver para disparar releases automáticas y generar changelogs con herramientas de conventional commit.

Controles avanzados y guardrails

Aplicar concurrency para prevenir despliegues simultáneos, timeout minutes por job, condiciones if para ejecutar solo en tags, needs para ordenar etapas, y permisos mínimos en cada workflow. Fijar versiones mayores o commits SHA para acciones críticas y habilitar secret scanning.

Runners autohospedados cuando son necesarios

Usar self hosted runners para acceso a redes privadas, GPUs, herramientas especiales o control de costos. Etiquetar runners por gpu arm64 docker y preferir imágenes efímeras o auto escalado para mantener estado limpio y seguridad.

Observabilidad, reports y cobertura

Subir reportes de tests y coverage para enriquecer comentarios en PR y mantener historial. Publicar reportes HTML como artifacts o GitHub Pages para entornos no productivos y anotar PRs con problem matchers para linters como eslint y flake8.

Programación y ejecuciones manuales

Usar schedule con cron en UTC y workflow dispatch para ejecuciones manuales con inputs que determinen objetivo. Combinar con branch protection rules para requerir checks antes de merge.

Ejemplo de pipeline end to end para API dockerizada

Un pipeline típico construye la imagen del servicio api publica en GHCR con etiquetas sha y branch, sube tags como artifact, despliega a staging tras build exitoso usando un role OIDC en AWS y luego despliega a prod solo cuando se crea un tag vX Y Z tras aprobación. Este flujo separa PR CI de despliegues a main y releases a producción.

Errores comunes y soluciones

Problemas habituales incluyen permisos insuficientes al publicar tags o releases, errores OIDC por audiencia mal configurada, builds lentos que se resuelven con caches y filtros de paths, tests inestables que requieren salud de servicios y timeouts, y secretos faltantes por alcance incorrecto entre repo environment u org.

Checklist de seguridad

Aplicar permisos de menor privilegio, usar entornos con revisores para prod, preferir OIDC sobre claves estáticas, fijar acciones a versiones seguras, mantener runners efímeros, activar protecciones de rama, secret scanning y Dependabot para dependencias.

Organización de proyecto sugerida

Estructura recomendada incluye carpetas api infra scripts y .github con actions y workflows. Mantener Dockerfile en la raíz y separar infraestructura como código en infra para terraform y helm.

Checklist rápido para comenzar

Agregar un workflow CI en .github workflows correr PRs, configurar entornos staging y prod con secretos, crear credenciales federadas OIDC en el cloud, implementar pipeline build test deploy con aprobaciones, añadir CodeQL y Dependency Review, aplicar filtros por ruta y caches, y monitorear métricas para iterar.

Próximos pasos recomendados

Medir tiempos de CI por paso, paralelizar suites, adoptar canary o rollouts por porcentaje, migrar a GitOps para Kubernetes, y exportar métricas DORA desde ejecuciones de Actions.

Sobre Q2BSTUDIO

Q2BSTUDIO es una empresa de desarrollo de software y aplicaciones a medida especializada en soluciones a medida para empresas. Ofrecemos servicios de software a medida inteligencia artificial ciberseguridad servicios cloud aws y azure servicios inteligencia de negocio ia para empresas agentes IA y power bi. Nuestro equipo diseña aplicaciones a medida seguras y escalables integrando modelos de inteligencia artificial para automatización y análisis avanzado, implementando controles de ciberseguridad y arquitecturas cloud optimizadas en AWS y Azure. También entregamos soluciones de inteligencia de negocio con Power BI y agentes IA que mejoran la productividad y la toma de decisiones.

Si quieres que Q2BSTUDIO implemente tu pipeline CI CD con GitHub Actions o diseñe una estrategia completa de despliegue segura y escalable adaptada a tus necesidades de software a medida y aplicaciones a medida contáctanos para una consultoría personalizada.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat