DEV Community

Lucas Hoz
Lucas Hoz

Posted on • Originally published at Medium

GitHub Actions - Automatización de Procesos

Un introducción a la automatización de procesos utilizando GitHub Actions

Artículo en inglés

Logotipo oficial de GitHub Actions compuesto por cinco círculos conectados.

Logotipo de GitHub Actions

Introducción

En el mundo del desarrollo de software, la automatización se ha convertido en un elemento crucial para la eficiencia y la calidad del código. GitHub Actions surgió con el objetivo de suplir dicha tarea.

En este artículo, exploraremos cómo las GitHub Actions crean los flujos de trabajo necesarios para cumplir con la difícil tarea de automatizar procesos.

Lista de contenidos

  • ¿Qué son las GitHub Actions?
  • ¿Qué es un Flujo de Trabajo?
  • Creando tu primer Flujo de Trabajo
  • Personalización y configuración avanzada
  • Integración con plataformas externas
  • Beneficios y casos de uso
  • Conclusiones
  • Recursos relacionados

¿Qué son las GitHub Actions?

GitHub Actions es un conjunto de herramientas, denominadas como “Acciones”, integradas en GitHub. Estas acciones permiten la automatización de procesos comunes, como la ejecución de pruebas, la compilación de código y el despliegue de aplicaciones desde GitHub. Convirtiendo a las GitHub Actions en un servicio fundamental para agilizar y mejorar la calidad del software.

¿Qué es un Flujo de Trabajo?

Un flujo de trabajo en GitHub Actions es una serie de trabajos automatizados que se ejecutan en respuesta a eventos específicos del repositorio asociado. Estos eventos pueden ser acciones como confirmaciones de código (Commits), la apertura de solicitudes de extracción (Pull Requests) o incluso la publicación de nuevas versiones (Releases). Los flujos de trabajo permiten organizar y coordinar las acciones de las GitHub Actions involucradas para lograr el objetivo deseado.

Creando tu primer Flujo de Trabajo

La creación de un flujo de trabajo en GitHub Actions no demanda amplios conocimientos. Puedes iniciar con un flujo de trabajo que realice los tests cada vez que se envié una confirmación de código (Commits) a la rama (Branch) principal del repositorio. Creando un archivo llamado .github/workflows/build-and-test.yml y definiendo sus propiedades.

Un archivo con extensión .yml (YAML), creado dentro del directorio .github/workflows, define un flujo de trabajo de las GitHub Actions. En el mismo se establecen las acciones a ejecutar, los eventos disparadores y el cómo interactuará con el repositorio

name: Build and Test

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Set up NodeJS
      uses: actions/setup-node@v4
      with:
        node-version: '20'

    - name: Install dependencies
      run: npm ci

    - name: Run tests
      run: npm run test
Enter fullscreen mode Exit fullscreen mode

Ejemplo del archivo .github/workflows/build-and-test.yml

Personalización y configuración avanzada

GitHub Actions permite una personalización avanzada de los flujos de trabajo. Puedes definir matrices para ejecutar acciones en diferentes entornos, configurar variables de entorno, y utilizar acciones de la comunidad para integrar herramientas específicas. Esto brinda un control granular sobre cómo se ejecutan las acciones y se adaptan a las necesidades específicas del proyecto.

Integración con plataformas externas

Una de las características destacadas de GitHub Actions es su capacidad para integrarse con otras plataformas y servicios. Puedes utilizar acciones predefinidas para desplegar en servicios en la nube, como: AWS, Azure o Google Cloud. Además, la API de GitHub Actions permite la integración con herramientas propias y servicios personalizados.

Beneficios y casos de uso

La automatización con GitHub Actions aporta numerosos beneficios al desarrollo de software. Acelera la entrega continua (CD), mejora la calidad del código al ejecutar pruebas automáticamente, y facilita la implementación en diversos entornos. Casos de uso comunes incluyen la construcción y despliegue de aplicaciones web, la ejecución de pruebas de integración y la notificación de cambios en servicios externos.

Un ejemplo práctico seria la comprobación de solicitudes de extracción (Pull Requests) a través de un flujo de trabajo activado en cada solicitud de extracción (Pull Request).

Ejecución de un flujo de trabajo de una GitHub Action, comprobando una solicitud de incorporación (Pull Request). Se pueden observar cuatro trabajos exitosos: comprobar título, obtener archivos confirmados, comprobar archivos confirmados, y finalmente, comprobar archivo confirmado.

Ejemplo de un flujo de trabajo que comprueba una solicitud de extracción (Pull Request)

Conclusiones

GitHub Actions ha demostrado ser una herramienta valiosa para la automatización en el desarrollo de software. Desde simplificar tareas rutinarias hasta facilitar flujos de trabajo complejos, GitHub Actions mejora la eficiencia y la calidad en proyectos de todos los tamaños. Integrar esta herramienta puede marcar la diferencia en la velocidad y confiabilidad de tus entregas de software.

Recursos relacionados

Top comments (0)