name: contexto
on: push
jobs:
check-main:
if: ${{ github.ref == 'refs/heads/main' }}
runs-on: ubuntu-latest
steps:
- run : echo "Desplegando en la rama $GITHUB_REF"
Conoce Github Actions
Automatización de DevOps con GitHub Actions
GitHub Actions: Automatización de CICD para Desarrolladores
Componentes y Conceptos Clave de GitHub Actions
Quiz: Conoce Github Actions
Creación de Workflow Files
Automatización de Tareas con GitHub Actions
Automatización con GitHub Actions para Desarrolladores
Triggers en GitHub Actions: Automatización y Ejemplos Prácticos
Eventos y Triggers en GitHub Actions
Uso de Contextos en GitHub Actions
Uso de Variables de Entorno en GitHub Actions
Variables y Secretos en GitHub Actions
Quiz: Creación de Workflow Files
Como encontrar bugs en un workflow
Configuración de Secrets en GitHub Actions
Quiz: Como encontrar bugs en un workflow
Casos de Uso de GitHub Actions
Flujos de Integración Continua con GitHub Actions
Compilación de Imágenes Docker en AWS, GCP y Azure
Flujo de Despliegue Continuo con Docker en AWS, GCP y Azure
Automatización de Tareas con GitHub Actions
Buenas Prácticas para Optimizar GitHub Actions
Costos y facturación en GitHub Actions
Costos y Tarifas de GitHub Actions: Minutos y Almacenamiento
Quiz: Costos y facturación en GitHub Actions
Cierre
Automatización de Tareas con GitHub Actions
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
A continuación, profundizaremos en cómo usar expresiones y los diferentes contextos a los que nos da acceso GitHub para optimizar nuestros workflow files.
Vamos a trabajar con el archivo expresiones.yml
que vienen del reto de la clase anterior.
La sección de ayuda nos muestra que este archivo tiene un workflow dispatch como trigger, y dentro de este, se definen dos inputs: edad (un número) y nombre (un string).
El job "mayor" verifica si edad >= número establecido. Si es cierto, se muestra "mayoría de edad" en la terminal.
El segundo job verifica si edad < número designado. Si es cierto, muestra "minoría de edad".
Ahora que dominamos las expresiones, es tiempo de enfocarnos en los contextos. Un contexto en GitHub Actions es una forma de acceder a información relevante sobre ejecuciones de workflows, variables, entorno de runners, jobs y steps.
Exploraremos los diferentes tipos de contextos que GitHub Actions nos ofrece y lo que podemos obtener de cada uno de ellos.
GitHub Actions ofrece una variedad de contextos, los más destacados son:
GitHub Context: Detalles ejecución workflow. Ejemplo: github.actor
obtiene nombre usuario actual.
ENV Context: Acceso variables en flujo, job o pasos. Más detalles próx. clase.
Contexto Vars: Acceso vars guardadas a nivel de ambiente, repo u org.
Contexto Job: Info job actual. Acceso por nombre o identificador.
Contexto Steps: Info steps actuales.
Contexto Runner: Acceso info runner job.
Contexto Secrets: Acceso a nombres y valores secretos en repo u org.
Contexto Inputs: Usar entradas info en ciertos triggers.
Un ejemplo de uso de contexto es un workflow file llamado "contexto" que se ejecuta en cada push a cualquier rama. Dentro de este file, hay un job llamado "checkMain" que verifica si estamos en la rama main usando el contexto GitHub y el atributo github.ref
. Si estamos en la rama main, este job imprimirá "Desplegando en la rama main" en la terminal.
Los contextos nos permiten acceder a información relevante de GitHub Actions, abriendo puertas para una configuración más innovadora y eficiente de nuestros jobs. Te animo a crear un nuevo archivo de workflow llamado contextos.yml
empleando al menos un contexto, ¡un concurso de scripting te espera en los comentarios!
Aportes 10
Preguntas 1
name: contexto
on: push
jobs:
check-main:
if: ${{ github.ref == 'refs/heads/main' }}
runs-on: ubuntu-latest
steps:
- run : echo "Desplegando en la rama $GITHUB_REF"
Reto 4 - Aprende a usar los distintos Contextos
name: Reto 4 - Aprende a usar los distintos Contextos
on: [push, pull_request]
env:
var1: Aprendiendo
var2: Github-Actions
var3: Contextos
jobs:
Contexto-env:
runs-on: ubuntu-latest
steps:
- name: echo env
run: echo "${{ env.var1 }} ${{ env.var2}} ${{ env.var3}}"
Contexto-github:
if: ${{ github.ref == 'refs/heads/main' }}
runs-on: ubuntu-latest
steps:
- name: echo $GITHUB_REF"
run: echo "Desplegando en la rama $GITHUB_REF"
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?