November 3, 2021

Procesos automáticos en GitHub

En este artículo te enseño como automatizar procesos con GitHub actions y ahorrarte tiempo y dinero.

¿Qué son los GitHub Actions?

los actions son una herramienta de GitHub que facilita la automatización de todos los flujos de trabajo de software. ¿Esto que quiere decir? Puedes automatizar prácticamente cualquier cosa, como procesos de compilación de ejecución de pruebas unitarias y de integración. Para empezar a usar los GitHub actions solo debes crear una carpeta en tu repositorio llamada .github y dentro de esa carpeta otra carpeta llamada workflows. Esta carpeta va a contener todos los actions o workflows que crees, quedando la siguiente estructura:

.
├── .github
│   └── workflows
└── my_script.py
└── .gitignore
└── LICENSE
└── README.md

Dentro del directorio .github/workflows vamos a crear un fichero llamado hola.yml. Dentro de este fichero vamos a copiar este código:

name: Mi primer action

# Ejecuta este workflow cada vez que se suba un nuevo commit al repositorio
on: push

jobs:
  # Establece la llave de tabajo. Esta llave es mostrada como el
  # nombre del trabajo cuando el nombre del trabajo no se proporciona
  primer-trabajo:
    # Nombre del trabajo
    name: Mi primera Prueba
    # Configura el tipo de máquina en la que se va a ejecutar
    runs-on: ubuntu-latest
    steps:
      # Ejecuta un Hola mundo
      - name: Imprimir un mensaje
        run: echo Hola mundo

Todo el código mostrado aquí se puede encontrar en mi GitHub.

Estructura de los actions

Cada workflow está compuesto por jobs y cada job está compuesto por steps. Ahora veremos que es cada cosa.

En primer lugar tenemos name que especifica el nombre que se va a mostrar el action que creaste en GitHub. Si vamos a nuestro repositorio y le damos click en donde dice Actions veremos lo siguiente:

Después le sigue on: push que especifica cuando se va a ejecutar el workflow. Aquí hay varias opciones. Puedes especificar un evento en específico (push, pull) y puedes especificar una o varias ramas, tags, etc. Más info aquí.

Después le siguen los jobs que son los trabajos que va a contener ese workflow.
En nuestro caso solo tenemos un jobs llamado primer-trabajo. A continuación definimos el nombre del job Mi primera Prueba y le decimos en que máquina virtual queremos que corra este job. En nuestro caso queremos que se ejecute en la última versión de Ubuntu. Si entramos dentro del commit que ejecutó el action veremos lo siguiente:

en steps se definen los pasos que va a realizar este jobs. En nuestro ejemplo solo tenemos un paso llamado imprimir mensaje que solo mostrará un texto en pantalla. Para verlo entramos dentro del job. Una vez dentro podemos ver cada paso realizado y desplegar para ver su salida:

Conclusiones

Como podemos apreciar los GitHub actions son una herramienta potente para automatizar procesos. Uno de sus usos principales es el CI/CD (integración continua y entrega continua) donde se pueden crear releases automáticos de tu software. En el caso de GitLab estos se llaman GitLab Runners y tienen una sintaxis muy parecida. Espero que te haya servido y puedas dar tus primeros pasos a un desarrollo más limpio y ágil. Para más información puedes visitar la documentación de GitHub.