GitHub Actions | Introducción
GitHub es una de las plataformas más utilizadas por los desarrolladores para hosting de repositorios almacenados en la nube. La Integración Continua (IC) es una práctica que requiere de ir añadiendo frecuentemente nuevo código compartido a un repositorio para detectar errores en el menor tiempo posible. Por ello, GitHub propuso, no solo alojar nuestro código en sus repositorios, sino automatizar los pasos de compilación y test de nuestros proyectos.
GitHub fue adquirido por Microsoft, y desde entonces han ido añadiendo novedades y funcionalidades nuevas, como GitHub Actions, cuya función es la de facilitar la ejecución de código.
¿Qué es GitHub?
GitHub es una plataforma creada para alojar el código de las aplicaciones y herramientas de cualquier desarrollador para facilitar la colaboración entre la comunidad y permitir la descarga del código de otros.
Fue adquirida en 2018 por Microsoft y utiliza el sistema de control de versiones Git diseñado por Linus Torvalds. Es una de las más usadas en todo el mundo por los desarrolladores gracias a su simplicidad y su característica de ser multiplataforma.
¿Para qué sirve GitHub?
GitHub permite a los desarrolladores alojar proyectos creando repositorios de forma gratuita. Además, ofrece una serie de herramientas propias como:
- Crear un Wiki para cada proyecto para anotar todos los cambios de las diferentes versiones.
- Sistema de seguimiento de problemas para que otras personas puedan hacer sugerencias o mejoras.
- Foro alrededor de estas anotaciones para mejorar el código.
- Gráficos para ver cómo trabajan los desarrolladores en sus proyectos.
- Características similares a las redes sociales como un sistema para seguir a tus creadores favoritos.
¿Qué es GitHub Actions?
GitHub Actions es una herramienta que permite reducir la cadena de acciones necesaria para la ejecución de código, mediante la creación de un de flujo de trabajo encargado del Pipeline. Siendo configurable para que GitHub reaccione a ciertos eventos de forma automática según nuestras preferencias.
Por lo tanto, GitHub Actions permite crear workflows que se puedan utilizar para compilar, testear y desplegar código. Además, da la posibilidad de crear flujos de integración y despliegue continuo dentro de nuestro repositorio.
Actions utiliza paquetes de códigos en los contenedores de Docker, los cuales se ejecutan en los servidores de GitHub y que, a su vez, son compatibles con cualquier lenguaje de programación. Esto hace que puedan funcionar con servidores locales y nubes públicas.
Conceptos básicos
Para entender mejor cómo funciona y de qué partes o acciones se compone, vamos a definir los conceptos básicos de GitHub Actions:
Paso
Se compone de un conjunto de tareas para poder ejecutar un trabajo. Estos pueden ejecutar comandos o acciones.
Trabajo
Es un conjunto de pasos que se ejecutan en runner de nuestro proceso. Los trabajos pueden ejecutarse de forma independiente o secuencial dependiendo de si el éxito de nuestro trabajo depende del anterior.
Flujo de trabajo
Es un procedimiento automatizado compuesto por uno o varios trabajos que se añade a un repositorio y puede ser activado por un evento. Se definen mediante archivos YAML y con él se puede hacer el build, test, package, reléase o deploy de un proyecto.
Evento
Son actividades específicas que desencadenan la ejecución de un flujo de trabajo.
Acciones
Es el bloque de construcción más pequeño de un flujo de trabajo y se pueden combinar como pasos para crear un trabajo.
Runner
Es una máquina con la aplicación de GitHub Actions ya instalada, cuya función es esperar a que los trabajo estén disponibles para luego poder ejecutar las acciones e informar del progreso y los resultados.
Beneficios de GitHub Actions
Una de las características que definen a GitHub Actions es la flexibilidad que proporciona, lo que se traduce en la apertura a un gran abanico de posibilidades en el que los desarrolladores podrán dar rienda suelta a su creatividad. Estas son otras de las ventajas que ofrece GitHub Actions:
Desarrollar en GitHub
La opción de Actions está completamente integrada en GitHub, por lo que no requiere un site externo. Esto significa que podemos administrar todo en el mismo lugar donde tengamos las funciones relacionadas con el repositorio.
Gran variedad de plantillas de CI
La plataforma proporciona muchas plantillas para todo tipo de configuraciones de CI (Integración continua), lo que facilita mucho el inicio del trabajo. Además, también tienes la opción de crear tus propias plantillas para, posteriormente, publicarlas en GitHub Marketplace.
Pruebas de contenedores múltiples
Actions permite probar configuraciones de varios contenedores una vez que hemos añadido compatibilidad para Docker y archivos de composición a nuestro flujo de trabajo.
Atractivo plan gratuito
Esta funcionalidad es gratis para todos los repositorios de código abierto e incluyen 2000 minutos al mes de compilación sin coste para los repositorios privados. Si, por el contrario, esto no es suficiente para tus necesidades, puedes elegir otro plan de forma sencilla.
Puestos en situación, os recomendamos saltar al post escrito por nuestro compañero Luis Fraile «Empezando a trabajar con GitHub Actions«