No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de GitHub Actions

Curso de GitHub Actions

Juan José Torres

Juan José Torres

Uso de contexto para acceder a información sobre un workflow

8/18
Recursos

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.

¿Qué son las expresiones en GitHub Actions y cómo se usan?

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".

¿Por qué son importantes los contextos en GitHub Actions?

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.

¿Cuáles son los principales contextos que nos ofrece GitHub Actions?

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.

¿Cómo se usa un contexto en un workflow file?,,,

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 6

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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"
El type de el input *edad* ahora se debe poner como `number`
```js name: Contexto run-name: ¡Estoy aprendiendo a usar Contextos! on: push jobs: check-main: if: ${{ github.ref == 'refs/heads/main' }} runs-on: ubuntu-latest steps: - run: echo "Desplegando en la rama $GITHUB_REF" - run: echo "Se está ejecutando la rama: ${{ github.ref }}" - run: echo "El nombre del workflow es: ${{ github.workflow }}" - run: echo "El workflow fue activado por: ${{ github.actor }}" - run: echo "El resultado del paso anterior fue: ${{ steps.previous_step.outputs.resultado }}" ```name: Contexto run-name: ¡Estoy aprendiendo a usar Contextos! on: push jobs: check-main: if: ${{ github.ref == 'refs/heads/main' }} runs-on: ubuntu-latest steps: \- run: echo "Desplegando en la rama $GITHUB\_REF" \- run: echo "Se está ejecutando la rama: ${{ github.ref }}" \- run: echo "El nombre del workflow es: ${{ github.workflow }}" \- run: echo "El workflow fue activado por: ${{ github.actor }}" \- run: echo "El resultado del paso anterior fue: ${{ steps.previous\_step.outputs.resultado }}"
Con la nueva interfaz no veo ya la opción de tomar notas.
Siempre dice que en Recursos nos dejara enlaces, pero los recursos estan vacios!