GitHub Actions: un resumen de lo esencial
GitHub Actions es una plataforma de Continuous Integration (CI) y Continuous Delivery (CD), que te permite automatizar varias acciones. Con ella, dejas de preocuparte personalmente de las tareas repetitivas y puedes dedicar más tiempo a tu proyecto.
¿Qué es GitHub Actions?
GitHub Actions es la plataforma de Continuous Integration y Continuous Delivery de la empresa GitHub. Permite a los usuarios automatizar repositorios y crear los denominados GitHub Workflows (flujos de trabajo). Por ejemplo, al actualizar tu repositorio en GitHub, se compila el nuevo código y automáticamente se ejecutan pruebas unitarias sobre componentes individuales de tu proyecto.
¿Cómo funciona GitHub Actions?
GitHub Actions trabaja a partir de tus propios GitHub Workflows. Dentro de los flujos de trabajo, reacciona ante diversos eventos, como los git push, y desencadena la acción correspondiente a ese evento. El flujo de trabajo en sí consta de diferentes “Jobs”, cada uno de los cuales se ejecuta en su propia máquina virtual o dentro de un contenedor. GitHub admite máquinas virtuales de Linux, Windows y macOS.
Deploy Now de IONOS es la mejor forma de publicar tus proyectos y páginas web de forma inmediata. Puedes personalizar tus GitHub Workflows automatizados en todo momento.
Los componentes más importantes de GitHub Actions
GitHub Workflow (flujo de trabajo) es el elemento más importante de Github Actions. El flujo de trabajo en realidad no es más que un archivo YAML en el que se definen las acciones que se deben ejecutar cuando ocurren determinados eventos. Los eventos no son los únicos que pueden activar flujos de trabajo, puedes activar un flujo de trabajo manualmente o incluso programar determinadas horas en las que se debe ejecutar. Cada GitHub Workflow inicia uno o más trabajos (jobs). No tienes que limitarte a un único flujo de trabajo por repositorio, sino que puedes definir tantos flujos de trabajo como quieras para tu repositorio de GitHub.
Eventos
Como ya se ha mencionado, los flujos de trabajo suelen activarse por eventos. Los eventos son acciones específicas de tu repositorio de GitHub que desencadenan la ejecución de un flujo de trabajo. Un ejemplo habitual de un evento de GitHub es un pull request, pero hay una infinidad más de eventos que puedes utilizar. Puedes consultar una lista completa con ejemplos de eventos en la documentación de GitHub.
Acciones
Las acciones son, por supuesto, fundamentales para GitHub Actions. Una acción es una aplicación individual de GitHub que realiza tareas complejas que se ejecutan con frecuencia. Se pueden utilizar de forma similar a como se utilizan las funciones en los archivos de los flujos de trabajo para evitar repetir código. Si no quieres escribir tus propias GitHub Actions, puedes encontrar una serie de acciones predefinidas en GitHub Marketplace.
Pasos
Los pasos (steps) son tareas individuales dentro de trabajos. Son scripts de shell que se ejecutan o una acción que se inicia. Los pasos se procesan en el orden en que están definidos. Además, los diferentes pasos se basan los unos en los otros y pueden compartir datos entre sí.
Trabajos
Un trabajo (job) es básicamente una secuencia de pasos que se ejecuta en un ejecutor (runner). Aunque los trabajos son independientes entre sí, también puedes definir dependencias entre ellos de forma manual. De esta forma, un trabajo tiene que esperar a que terminen los otros trabajos de los que depende, interrumpiendo así la forma habitual de ejecutar distintos trabajos paralelamente.
Ejecutor
Un ejecutor (runner) es el servidor en el que se ejecutan tus flujos de trabajo. Cada ejecutor solo puede ejecutar un único trabajo a la vez. Por lo tanto, los ejecutores son esencialmente máquinas virtuales. Los sistemas operativos compatibles con GitHub son Linux Ubuntu, Windows y macOS. Si necesitas un sistema operativo diferente para probar tus proyectos, puedes, por supuesto, hacer hosting de tu propio ejecutor.
Ventajas de GitHub Actions
Además de que puedes integrar GitHub Actions en tu trabajo de GitHub sin problemas, el servicio de Continuous Integration ofrece una serie de ventajas adicionales. Por ejemplo, puedes utilizar plantillas predefinidas y no tienes por qué utilizar tus propios flujos de trabajo. Además, el servicio GitHub es completamente gratuito para tus repositorios públicos. Para repositorios privados, GitHub te facilita 2000 minutos al mes con hosting de flujos de trabajo.