Automatiza tus despliegues con GitHub Actions
Categoría: DevOps
Descubre cómo usar GitHub Actions para automatizar tus despliegues. Aprende a configurar un flujo CI/CD que compile, testee y despliegue tu aplicación en cada push a main.
Imagen destacada (para buscar en Envato Elements):
developer devops automation ci cd pipeline github concept
Agrega “isometric” si prefieres ilustraciones vectoriales.
¿Qué es GitHub Actions?
GitHub Actions es una plataforma de automatización nativa de GitHub que te permite definir flujos de trabajo personalizados que se ejecutan en función de eventos (como un push, pull request o release). Puedes usarla para:
- Ejecutar tests automáticamente
- Compilar y empaquetar tu código
- Desplegar a producción sin intervención manual
Todo esto se define mediante archivos YAML en el directorio .github/workflows.
Paso 1: Crear el workflow básico
Crea el directorio .github/workflows en tu repositorio y añade un archivo deploy.yml con este contenido básico:
name: CI/CD Pipeline
on:
push:
branches:
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Clonar repositorio
uses: actions/checkout@v3
- name: Instalar Java
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
- name: Compilar proyecto
run: ./mvnw clean install
- name: Construir imagen Docker
run: docker build -t miapp:latest .
- name: Login a Docker Hub
run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin
- name: Subir imagen
run: docker tag miapp:latest docker.io/tuusuario/miapp:latest && docker push docker.io/tuusuario/miapp:latest
⚠️ Recuerda: Configura las credenciales DOCKER_USERNAME y DOCKER_PASSWORD en los secrets del repositorio.
Paso 2: Añadir el paso de despliegue
Supongamos que tienes un servidor remoto donde quieres desplegar tu contenedor. Puedes usar scp y ssh para copiar el docker-compose.yml y lanzar la nueva versión:
- name: Copiar archivos al servidor
run: |
scp docker-compose.yml user@ip-servidor:/home/user/app
ssh user@ip-servidor 'cd /home/user/app && docker-compose pull && docker-compose up -d'
Y añade las claves SSH necesarias como secrets (SSH_PRIVATE_KEY) y configúralas antes de ejecutar los comandos:
- name: Configurar SSH
uses: webfactory/ssh-agent@v0.8.0
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
Paso 3: Mejoras adicionales
- Ejecución de tests antes de compilar
- Notificaciones a Slack o Discord al finalizar
- Despliegues a múltiples entornos (
staging,production) - Revisión manual antes del despliegue (
workflow_dispatch) - Reutilización de jobs con
reusable workflows
Ventajas de usar GitHub Actions
- ✔️ Integración directa con tu repositorio
- 🔄 Repetibilidad garantizada en cada despliegue
- 📈 Mejora continua de calidad y velocidad
- 🔒 Gestión segura de secretos y claves
Conclusión
GitHub Actions te permite automatizar desde los pasos más básicos hasta flujos completos de CI/CD con despliegues productivos. Dominar esta herramienta es clave para cualquier desarrollador moderno que busque eficiencia y profesionalismo en sus entregas.
Empieza con un flujo sencillo y evoluciona hacia pipelines robustos con validaciones, múltiples entornos y despliegue continuo. La automatización no es el futuro, es el presente.





