Automatiza tus despliegues con GitHub Actions

Software developing

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.

Compartir
Facebook
Twitter
Email
Imprimir

Contacto

¿Tienes alguna duda, propuesta o simplemente quieres saludar? Estoy encantado de leerte.