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
Viendo ahora - 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
contextos en GitHub Actions explicados
Resumen
Los contextos en GitHub Actions son la forma oficial de acceder a información dinámica sobre la ejecución de un workflow: variables, runners, jobs, steps, secretos e inputs. Si automatizas procesos en GitHub, dominarlos te permite escribir workflows más flexibles y reutilizables.
Antes de entrar en materia, vale la pena revisar el reto anterior, porque sirve de puente para entender cómo encajan los contextos con las expresiones que ya venías usando.
Cómo se resuelve el reto de expresiones.yml
El archivo expresiones.yml define un workflow llamado Expresiones con un run name personalizado: "Estoy aprendiendo a usar expresiones". Esa etiqueta es opcional, pero cuando tu repositorio tiene varios workflows corriendo, te salva la vida para identificarlos rápido.
El trigger es workflow_dispatch y recibe dos inputs requeridos: edad (número) y nombre (string). A partir de ahí, el archivo declara dos jobs que dependen de un condicional:
- Job mayor: usa
ifcon el operador>=y comparainputs.edadcontra el literal18. Si se cumple, corre en Ubuntu y haceechocon el nombre seguido de "es mayor de edad". - Job menor: replica la lógica con el operador
<y18como literal. Si la edad es menor, imprime "[nombre] es menor de edad".
La clave está en cómo las expresiones leen valores de inputs y los comparan con literales para decidir el flujo. Ese mismo patrón lo vas a reutilizar al trabajar con contextos.
Qué es un contexto en GitHub Actions y para qué sirve
Un contexto es un objeto que GitHub expone dentro del workflow para que accedas a información sobre la ejecución, los runners, los jobs y los steps. Se consultan con la sintaxis ${{ contexto.atributo }} y son la base para construir condicionales, mensajes dinámicos y lógica reutilizable.
¿Qué es un contexto en GitHub Actions? Es un objeto que te da acceso a datos en tiempo de ejecución del workflow, como el usuario que lo lanzó, la rama actual, los inputs o los secretos configurados.
Cuáles son los principales contextos de GitHub Actions
GitHub ofrece varios contextos, pero estos son los que más vas a usar:
- github: información sobre la ejecución del workflow. Por ejemplo,
github.actorte devuelve el usuario que disparó el workflow, ygithub.refindica la rama actual. - env: variables de entorno definidas a nivel de workflow, job o step. Funcionan igual que las variables del sistema operativo del runner.
- vars: variables guardadas a nivel de ambiente, repositorio u organización.
- job: datos del job en ejecución. Se accede con el identificador del job, por ejemplo
mayor.nameomenor.name. - steps: información de los steps en ejecución, también accedidos por su identificador.
- runner: datos del runner que está corriendo el job actual.
- secrets: nombres y valores de secretos guardados en repositorio u organización.
- inputs: entradas de triggers como
workflow_dispatch, accesibles coninputs.nombreoinputs.edad.
Después de esta lista, conviene aterrizarlo con un ejemplo concreto, porque es ahí donde el operador punto cobra sentido.
Cómo usar el contexto github.ref para validar la rama
Imagina un workflow llamado contexto que se ejecuta en cada push a cualquier rama. Dentro tiene un job llamado check main con un condicional que valida la rama activa antes de seguir.
El if compara github.ref con el literal refs/heads/main. Esa cadena es la forma estándar en la que Git identifica la rama main. Si la condición se cumple, el job corre un único step que ejecuta:
yaml run: echo "Desplegando en la rama ${{ github.ref }}"
Como el condicional ya filtró por main, el output siempre será "Desplegando en la rama refs/heads/main". Aquí ves dos cosas: el contexto github se usa tanto para decidir si el job corre como para inyectar el valor dentro del echo.
¿Cómo accedo al valor de un contexto? Usas el operador punto dentro de una expresión
${{ }}. Por ejemplo,${{ github.actor }}te da el usuario que lanzó el workflow y${{ inputs.nombre }}te da el valor de un input del trigger.
Cuándo usar env, vars o secrets
Los tres parecen variables, pero responden a necesidades distintas:
- Usa env para valores temporales que viven durante la ejecución del workflow.
- Usa vars cuando necesites configuración persistente a nivel de repositorio u organización.
- Usa secrets para credenciales, tokens o cualquier dato sensible que no debe quedar expuesto en el log.
¿Cuál es la diferencia entre env y vars?
envdefine variables dentro del propio archivo del workflow, mientras quevarsaccede a variables guardadas en la configuración de GitHub a nivel de ambiente, repositorio u organización.
Reto: crea tu propio contextos.yml
Tu turno. Crea un workflow file nuevo con el nombre contextos.yml y usa al menos uno de los contextos vistos para acceder a información relevante de un job que te resulte interesante.
Algunas ideas para inspirarte:
- Imprimir el
github.actorjunto con un mensaje de bienvenida. - Validar la rama con
github.refantes de correr un step de despliegue. - Mostrar datos del runner con el contexto
runnerpara depurar entornos.
Comparte tu solución en los comentarios y cuéntame qué contexto elegiste. En la siguiente clase vamos a ver los diferentes tipos de variables de entorno que puedes configurar en tus repositorios.