Contenido del curso
Creación de Workflow Files
- 4

Crea tu primer workflow con GitHub Actions
14:29 min - 5

Hola mundo con Python en GitHub Actions
20:50 min - 6

Triggers de GitHub Actions más usados
13:55 min - 7

Expresiones y operadores en GitHub Actions
16:51 min - 8

contextos en GitHub Actions explicados
10:07 min - 9

Variables de Entorno en GitHub Actions
13:07 min - 10

Secretos y variables en GitHub Actions
10:30 min
Como encontrar bugs en un workflow
Casos de Uso de GitHub Actions
Costos y facturación en GitHub Actions
Cierre
Componentes clave de GitHub Actions
Resumen
GitHub Actions organiza la automatización en cuatro piezas que se anidan una dentro de otra: workflow, job, step y action. Entender cómo se encapsulan te permite diseñar pipelines de CI/CD claros, reutilizables y fáciles de mantener desde tu repositorio.
Si vienes empezando con integración y despliegue continuo, aquí vas a ver cómo se conectan estos conceptos, qué papel juegan los eventos y los runners, y cómo se traduce todo a un archivo YAML real.
¿Qué es un workflow en GitHub Actions y dónde se define?
Un workflow es el contenedor más amplio: un proceso automatizado y configurable que ejecuta uno o más jobs cuando algo sucede en tu repositorio [1:20].
Se define con un archivo YAML dentro del directorio .github/workflows y un mismo repositorio puede tener varios. Lo común es separar responsabilidades: uno corre tests al hacer push, otro despliega a producción cuando los tests pasan, y otro reacciona a acciones externas.
¿Dónde viven los archivos de workflow? En la carpeta
.github/workflowsde tu repositorio, en formato YAML. Cada archivo describe un workflow distinto.
El YAML funciona como un superset de JSON: trabaja con llaves, valores y listas, pero con una sintaxis más legible para humanos. Un ejemplo mínimo declara name: Hola mundo y on: [push], lo que significa que el workflow se llama Hola mundo y se ejecuta cada vez que alguien haga push a cualquier rama [2:30].
¿Qué es un evento y cómo dispara un workflow?
Un event es la actividad específica que activa la ejecución del workflow [1:40]. Puede originarse dentro de GitHub o desde un sistema externo vía API REST.
Ejemplos de eventos internos comunes:
- Un push a una rama específica.
- La apertura de un pull request.
- La creación de un issue o un comentario nuevo.
- La asignación de una etiqueta.
Un evento externo, en cambio, puede ser un botón en tu página web que, al ser presionado, dispara una compilación o publica un comentario automáticamente. Esa flexibilidad es la que conecta tu repositorio con flujos de negocio reales.
¿Qué diferencia hay entre un job, un step y un runner?
Un job es un conjunto de tareas (steps) que viven dentro del workflow y se ejecutan en el mismo runner [3:40]. Un workflow puede tener varios jobs y, dentro de cada uno, los steps corren de forma secuencial: si el segundo step falla, el tercero no se ejecuta.
Como todos los steps de un job comparten el mismo servidor, también pueden compartir datos. Si un step guarda una variable o genera un archivo, el siguiente step puede usarlo sin fricción.
¿Qué es un runner y qué sistema operativo elegir?
Un runner es el servidor donde corre el job. Cada runner ejecuta solo un job a la vez, y GitHub ofrece runners gestionados con tres sistemas operativos [5:00]:
- Ubuntu: el más rápido y económico, recomendado por defecto.
- Windows: útil cuando tu app debe compilarse para ese sistema.
- macOS: necesario para builds de iOS o macOS.
También puedes registrar tus propios servidores como self-hosted runners cuando ninguno de esos tres sistemas se ajusta a tu caso. En el YAML, indicas el sistema con runs-on: ubuntu-latest dentro del job [5:50].
¿Para qué sirven runners con distintos sistemas operativos? Para compilar tu aplicación en el entorno donde se va a ejecutar. Una app multiplataforma puede tener un job por sistema operativo.
¿Qué puede contener un step?
Un step es la unidad más pequeña dentro de un job y puede ser una de dos cosas: un script de shell (un comando de terminal) o un action reutilizable [6:30].
Un ejemplo típico de job llamado Check Batch Version incluye cuatro steps: hacer checkout del repositorio con un action, configurar Node con otro action, ejecutar npm install y finalmente correr el comando que verifica la versión de la librería. Los dos primeros aprovechan trabajo automatizado por la comunidad; los dos últimos son comandos directos que tú controlas.
¿Qué es un action y por qué usarlo?
Un action es una aplicación personalizada que realiza una tarea compleja y repetitiva, condensándola en una sola línea de configuración [7:30]. Reduce código duplicado y te conecta con piezas ya probadas por otros equipos.
Piensa en hacer checkout de un repositorio sin un action: tendrías que instalar Git, configurar credenciales, clonar el repo y verificar archivos. Con uses: actions/checkout te ahorras todos esos pasos. Lo mismo pasa con configurar Node, donde un action resuelve agregar el repositorio, descargarlo, compilarlo y elegir la versión.
El GitHub Marketplace alberga más de 17 mil actions creados por GitHub, empresas y la comunidad [8:40]. Puedes usarlos tal cual o crear los tuyos para casos muy específicos.
¿Cómo se ven todos los conceptos juntos en un workflow?
Un ejemplo completo del workflow Hola mundo declara dos steps dentro del job:
- Un step con
id: ipque usa el actionhaythem/public-ip@v1.3para detectar la IP pública del runner. - Un step que ejecuta un comando de terminal con
echo "Hola mundo desde ${{ steps.ip.outputs.ipv4 }}", leyendo el dato producido por el step anterior.
Esa sintaxis con ${{ }} es la forma en que GitHub Actions referencia outputs entre steps, y la verás repetidamente en pipelines reales [9:30].
Cómo encajan workflow, job, step y action en tu día a día
La jerarquía es directa: el workflow encapsula jobs, los jobs encapsulan steps y los steps pueden contener un action. Todo corre sobre runners y se describe en YAML, un formato amigable basado en llaves, valores y listas que extiende a JSON.
Con esta base puedes diseñar pipelines separados por propósito: uno para integración continua, otro para despliegue, otro para automatizar issues o comentarios. ¿Qué workflow vas a automatizar primero en tu repositorio? Cuéntamelo en los comentarios.