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
Viendo ahora
Como encontrar bugs en un workflow
Casos de Uso de GitHub Actions
Costos y facturación en GitHub Actions
Cierre
Secretos y variables en GitHub Actions
Resumen
Configurar secrets y variables en GitHub Actions te permite reutilizar valores en tus workflows y proteger información sensible como contraseñas o credenciales. Aquí verás la diferencia entre ambos, cómo declararlos y cómo accederlos desde un job, partiendo de un reto práctico con un archivo variables.yml.
Cómo se resuelve el reto del workflow con variables
El reto consistía en crear un archivo variables.yml dentro de .github/workflows que usara variables, ya sea con la palabra reservada env o con variables a nivel de repositorio.
Qué estructura debe tener el archivo variables.yml
El nombre exacto del archivo importa: las acciones del repositorio detectan variables.yml para validar que completaste el reto. La configuración base incluye:
- Un
namey unrun-namepara identificarlo en la pestaña Actions. - Un trigger
workflow_dispatchpara ejecutarlo manualmente. - Una variable
enva nivel de workflow llamadadia_de_la_semanacon valorlunes. - Un job
saludo_variablescon su propia variableenvllamadasaludocon valorhola.
Dentro del único step se imprime un echo que combina tres fuentes distintas de datos. La primera es la variable saludo, declarada a nivel de job. La segunda es ${{ vars.nombre }}, que accede a la variable nombre configurada a nivel de repositorio (con valor Juan) gracias al contexto vars. La tercera es el día de la semana.
Cuál es la diferencia entre acceder con $ y con el contexto env
Hay dos formas válidas de leer una variable de entorno dentro del runner. Como el runner corre en Ubuntu, puedes usar la sintaxis del sistema operativo: $dia_de_la_semana. La otra opción es usar el contexto propio de GitHub Actions: ${{ env.dia_de_la_semana }}.
¿Cuándo uso vars y cuándo uso env? Usa
envpara variables que defines dentro del archivo del workflow. Usavarspara acceder a variables configuradas en Settings del repositorio.
Qué son los secrets en GitHub Actions y para qué sirven
Los secrets viven en Settings > Secrets and variables > Actions, en la pestaña Secrets. Funcionan parecido a las variables, pero con una diferencia crítica: una vez guardas un secret, no puedes volver a ver su valor, solo su key.
Cuándo usar secrets en lugar de variables
Las variables son para datos no sensibles que cualquier persona con acceso al repositorio puede ver sin riesgo. Los secrets son para información que, si se filtra, compromete tu aplicación o a tus usuarios. Algunos casos típicos:
- Contraseñas de cuentas o bases de datos.
- Access keys de servicios cloud como AWS.
- Tokens de APIs de terceros.
- Credenciales de configuración de servidores.
Para crear uno, das clic en New secret, defines un key (por ejemplo contraseña) y un valor (por ejemplo mi contraseña supersegura). Después de guardarlo, solo podrás eliminarlo o sobreescribirlo. Por eso, guarda siempre el valor original en un lugar seguro antes de registrarlo.
¿Puedo recuperar el valor de un secret después de guardarlo? No. GitHub oculta el valor de forma permanente. Solo puedes editarlo para asignar uno nuevo o eliminarlo.
Cómo accedo a un secret desde un workflow
Para verlo en acción, se crea un nuevo archivo secretos.yml directamente en la rama main, separado de la rama aprendiendo-github-actions donde viven los retos con pull request abierto.
Cómo se declara el job que usa el secret
El workflow reutiliza el job saludo_variables y agrega uno nuevo, saludo_secretos, que corre sobre ubuntu-latest. Su único step imprime un mensaje que combina:
- La variable
env.saludodefinida en el workflow. - La variable
vars.nombredel repositorio. - El secret con
${{ secrets.contraseña }}.
El contexto secrets te da acceso a cualquier key registrada en la sección de Secrets. La sintaxis siempre es ${{ secrets.NOMBRE_DEL_SECRET }}.
Cómo se ejecuta y se prueba el workflow
Al hacer commit usando una convención tipo conventional commits (feat: agregar nuevo workflow), el archivo queda disponible. Como el trigger es workflow_dispatch, debes ir a la pestaña Actions, seleccionar el workflow saludo usando variables y secretos, elegir la rama main y dar clic en Run workflow.
Al ejecutarse, GitHub Actions enmascara automáticamente el valor del secret en los logs, así que aunque alguien vea la salida, no podrá leer la contraseña.
Dónde aplicar secrets en un caso real
Un ejemplo común es subir una aplicación a un servidor en la nube. Si buscas una action en el GitHub Marketplace que despliegue a AWS, esa action te pedirá configurar las access keys como variables de entorno. Esos valores son altamente sensibles: si quedan a la luz pública, alguien podría tomar control de tu cuenta.
La solución correcta es guardarlos como secrets en el repositorio y pasarlos a la action mediante el contexto secrets. Así protegerías credenciales, llaves de APIs y cualquier dato que no debería salir del entorno seguro de GitHub.
Deja en los comentarios un ejemplo de workflow file donde uses secrets para pasarlos a una action que lo requiera, ya sea un despliegue a AWS u otro caso que se te ocurra.