Saltar al contenido principal

🚀 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:

  1. Hacer commit.
  2. Hacer push.
  3. 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 name define 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/workflows y que la indentación YAML sea correcta.