🚀 Crear nuestro primer flujo de trabajo
Ha llegado el momento de crear nuestro primer flujo de trabajo con GitHub Actions.
En esta clase aprenderás cómo estructurar un workflow, dónde debe ubicarse dentro del repositorio y cómo ejecutarlo automáticamente cuando ocurran determinados eventos.
Aunque el ejemplo será muy sencillo, servirá para comprender todos los conceptos fundamentales que utilizaremos más adelante.
📁 La carpeta especial de GitHub Actions
Todos los flujos de trabajo deben almacenarse dentro de una estructura de carpetas específica:
.github/
└── workflows/
GitHub detecta automáticamente cualquier archivo YAML que se encuentre dentro de esta carpeta y lo interpreta como un workflow.
Por este motivo es fundamental respetar exactamente el nombre y la ubicación del directorio.
Si el archivo no está dentro de
.github/workflows, GitHub no lo detectará ni lo ejecutará.
📄 Crear el primer workflow
El primer workflow se crea mediante un archivo YAML.
Por ejemplo:
.github/workflows/01-hello.yml
La extensión utilizada es .yml o .yaml, ya que GitHub Actions utiliza YAML como formato de configuración.
Dentro del archivo comenzamos definiendo un nombre para el flujo de trabajo:
name: 01 Hello
Este nombre será el que aparecerá posteriormente dentro de la pestaña Actions de GitHub.
🛠️ Utilizar la extensión oficial de GitHub Actions
Para trabajar cómodamente con workflows se recomienda instalar la extensión oficial de GitHub Actions para Visual Studio Code.
Esta extensión proporciona:
- Autocompletado
- Validación de sintaxis
- Detección de errores
- Ayuda contextual
- Panel específico para GitHub Actions
Gracias a ello es mucho más sencillo escribir workflows complejos sin cometer errores de configuración.
⚡ Definir cuándo debe ejecutarse
Todo workflow necesita especificar qué evento disparará su ejecución.
En este ejemplo se utilizará un push sobre la rama principal:
on:
push:
branches:
- main
Esto significa que el workflow se ejecutará automáticamente cada vez que alguien haga push sobre la rama main.
Si el push ocurre en otra rama, el workflow no se ejecutará.
🧩 Definir los trabajos (Jobs)
Una vez definido el evento de activación, debemos especificar los trabajos que se ejecutarán.
jobs:
hello:
El identificador hello es simplemente el nombre interno del job.
Podemos utilizar cualquier nombre que tenga sentido para nuestro proyecto.
🖥️ Elegir el runner
Cada job necesita ejecutarse en una máquina.
GitHub proporciona runners preconfigurados para distintos sistemas operativos.
Ejemplo:
runs-on: ubuntu-24.04
Durante la clase se menciona una recomendación importante:
Evita utilizar siempre
ubuntu-latest.
Aunque pueda parecer conveniente, una actualización futura podría introducir cambios incompatibles que provoquen errores inesperados.
Es preferible fijar explícitamente la versión que deseas utilizar.
👣 Crear los pasos del workflow
Dentro de cada job se definen los pasos (steps) que se ejecutarán secuencialmente.
Primer paso:
steps:
- name: Saludar
run: echo "Hola desde GitHub Actions"
Este comando simplemente imprime un mensaje en la consola del runner.
📅 Ejecutar varios pasos
Un workflow puede contener tantos pasos como sea necesario.
Por ejemplo:
- name: Ver fecha del runner
run: date
Y también:
- name: Ver archivos disponibles
run: ls
Cada paso se ejecuta en orden y GitHub mostrará el resultado individual de cada uno.
⚠️ La importancia de la indentación en YAML
Uno de los aspectos más importantes de YAML es que la indentación tiene significado.
A diferencia de JSON:
- No utiliza llaves
- No utiliza paréntesis
- No utiliza delimitadores visuales complejos
Por ello los espacios determinan la estructura del documento.
Es fundamental mantener una indentación consistente durante todo el archivo.
Un error en los espacios puede provocar que GitHub no interprete correctamente el workflow.
📂 Ubicación correcta del workflow
Durante la clase se produce un error muy común:
El workflow se crea inicialmente dentro de una carpeta del proyecto en lugar de hacerlo en la raíz del repositorio.
GitHub no detecta workflows fuera de:
.github/workflows
Después de moverlo a la ubicación correcta, GitHub lo reconoce automáticamente y comienza a ejecutarlo.
▶️ Ejecutar el workflow
Una vez creado el archivo, basta con:
- Hacer commit.
- Hacer push.
- Esperar a que GitHub detecte el cambio.
Al producirse el push sobre main, GitHub inicia automáticamente la ejecución.
Desde la pestaña Actions del repositorio podremos seguir todo el proceso.
🎨 Estados de ejecución
GitHub Actions utiliza distintos estados visuales:
- 🟡 Amarillo → En ejecución
- 🟢 Verde → Correcto
- 🔴 Rojo → Error
Esto permite identificar rápidamente si el workflow se ha ejecutado correctamente.
🔍 Inspeccionar la ejecución
Al abrir una ejecución concreta podemos consultar:
- Cada job ejecutado
- Los pasos individuales
- El tiempo empleado
- Los logs completos
- Las variables del entorno
- La configuración del runner
Esto resulta fundamental para depurar errores.
🖥️ Qué incluye el runner de GitHub
Cuando GitHub ejecuta un workflow, crea una máquina completa para nosotros.
Por ejemplo, el runner Ubuntu incluye:
- Node.js
- npm
- Python
- pip
- PHP
- AWS CLI
- Navegadores
- Herramientas de desarrollo
- Entornos de ejecución adicionales
Muchas veces podremos utilizar estas herramientas directamente sin necesidad de instalarlas manualmente.
📌 Ideas clave de esta clase
Quédate con estos conceptos:
- Los workflows deben ubicarse en
.github/workflows - GitHub Actions utiliza archivos YAML
- El campo
namedefine el nombre visible del workflow - Los eventos determinan cuándo se ejecuta
- Los jobs contienen el trabajo principal
- Los steps representan acciones individuales
- Es recomendable fijar versiones concretas del runner
- YAML depende de la indentación correcta
- Los workflows se ejecutan automáticamente tras un push
- La pestaña Actions permite monitorizar y depurar las ejecuciones
🚀 Lo siguiente
Ahora que ya has creado tu primer workflow, ya conoces la estructura básica de GitHub Actions.
En las siguientes clases empezarás a realizar tareas realmente útiles dentro de estos workflows, como instalar dependencias, ejecutar pruebas, validar código y automatizar procesos completos de integración continua.
💡 Tip: Cuando un workflow no se ejecute, lo primero que debes comprobar es que el archivo esté ubicado exactamente dentro de
.github/workflowsy que la indentación YAML sea correcta.