Sistema de automatización de tareas basado en workflows dentro de Github. Nos permite desde interactuar con ramas, pull request, issues, hasta implementar un sistema de CI/CD para nuestro proyectos
Ha sido uno de los grandes funcionalidades introducidas en 2019. (Desde que Microsoft se hizo con el control de Github, están surgiendo nuevas muy interesantes, potenciadas muchas de ellas a través de servicios de Azure).
Todos los procesos de Github Actios se ejecutan en máquinas virtuales Standard_DS2_v2 en Microsoft Azure.
Github genera una serie de artefactos que ocupan espacio de almacenamiento en nuestra cuenta junto con todos aquellos binarios que se generen en cada uno de los procesos.
Cualquier máquina con la aplicación del runner
de GitHub Actions instalada. Puedes usar un runner
alojado por GitHub o alojar tu propio runner
. Un runner
espera los trabajos disponibles. Cuando un runner
recoge un trabajo, ejecuta las acciones del trabajo e informa el progreso, los registros y los resultados finales a GitHub. Los runners
ejecutan un trabajo por vez.
El entorno virtual de un runner
alojado de GitHub incluye la configuración de hardware, el sistema operativo y el software instalado de la máquina virtual. Entornos virtuales para ejecutores alojados de GitHub.
Cada máquina virtual tiene los mismos recursos de hardware disponibles:
- CPU de 2 núcleos
- 7 GB de memoria RAM
- 14 GB de espacio en el disco SSD
Entorno virtual | Etiqueta de flujo de trabajo YAML |
---|---|
Windows Server 2019 | windows-latest o windows-2019 |
Ubuntu 18.04 | ubuntu-latest o ubuntu-18.04 |
Ubuntu 16.04 | ubuntu-16.04 |
macOS Catalina 10.15 | macos-latest or macos-10.15 |
Un proceso automático configurable que puedes configurar en tu repositorio para:
- elaborar,
- probar,
- empaquetar,
- lanzar o
- implementar cualquier proyecto en GitHub.
Los flujos de trabajo constan de uno o más jobs
y se pueden programar o activar mediante eventos
.
Un conjunto de pasos que se ejecutan en el mismo runner
.
- Se pueden establecer reglas de dependencia entre jobs
- Se pueden ejecutar de forma paralela o secuencial
- Si alguno de los
jobs
falla, no se ejecutarán el resto - cada trabajo en un flujo de trabajo se ejecuta en una nueva instancia de un entorno virtual.
Una actividad específica que a mode de trigger
activa el arranqueflujo de trabajo. Estoso eventos son internos de Github aunque también pueden ser externos a través de webhooks
.
Un paso es una tarea individual que puede ejecutar comandos o acciones. Un trabajo configura uno o más pasos. Cada paso en un trabajo se ejecuta en el mismo runner
, lo que permite que las acciones en ese trabajo compartan información usando el sistema de archivos.
Las tareas individuales que combinas como pasos para crear un job
.
- Son el componente portable más pequeño de un flujo de trabajo.
- Se pueden crear acciones propias acciones, usar acciones compartidas de la comunidad de GitHub y personalizar las acciones públicas.
- Se incluyen como un paso más en nuestro workflow.
Un flujo de trabajo es un proceso automatizado configurable formado por uno o más trabajos. Debes crear un archivo YAML para definir tu configuración de flujo de trabajo.
URLs de interés: