Skip to main content

Contextos

Obtén información sobre los contextos en GitHub Actions.

Acerca de los contextos

Los contextos son una manera de acceder a información acerca de las ejecuciones de flujo de trabajo, variable, entornos del ejecutor, trabajos y pasos. Cada contexto es un objeto que contiene propiedades, que pueden ser cadenas u otros objetos.

Los contextos, objetos y propiedades variarán significativamente bajo las diferentes condiciones de ejecución de flujo de trabajo. Por ejemplo, el contexto matrix solo se rellena para los trabajos de una matriz.

Puedes acceder a los contextos utilizando la sintaxis de expresión. Para más información, consulta Evaluación de expresiones en flujos de trabajo y acciones.

${{ <context> }}

Advertencia

Al crear flujos de trabajo y acciones, siempre debe tener en cuenta si el código podría ejecutar una entrada de posibles atacantes que no es de confianza. Se tratará a algunos contextos como una entrada no confiable, ya que un atacante podrían insertar su propio contenido malintencionado. Para más información, consulta Referencia de uso seguro.

Determinar cuándo utilizar contextos

GitHub Actions incluye una colección de variables denominadas contextos y una colección de variables similar denominadas variables predeterminadas. Estas variables se pretenden utilizar en puntos diferentes del flujo de trabajo:

  • Variables de entorno predeterminadas: estas variables de entorno solo existen en el ejecutor que ejecuta el trabajo. Para más información, consulta Almacenamiento de información en variables.
  • Contextos: puedes usar la mayoría de los contextos en cualquier punto del flujo de trabajo, incluido cuando las variables predeterminadas no estén disponibles. Por ejemplo, puede usar contextos con expresiones para realizar un procesamiento inicial antes de que el trabajo se enrute a un ejecutor para su ejecución; esto le permite utilizar un contexto con la palabra clave condicional if para determinar si se debería ejecutar un paso. Una vez que el trabajo esté en ejecución, también puede recuperar variables de contexto para el ejecutor que ejecuta el trabajo, como runner.os. Para detalles de dónde puedes usar varios contextos dentro de un flujo de trabajo, consulta Referencia de contextos.

El siguiente ejemplo ilustra cómo estos tipos de variables diferentes pueden utilizarse juntas en un trabajo:

YAML
name: CI
on: push
jobs:
  prod-check:
    if: ${{ github.ref == 'refs/heads/main' }}
    runs-on: ubuntu-latest
    steps:
      - run: echo "Deploying to production server on branch $GITHUB_REF"

En este ejemplo, la instrucción if comprueba el contexto github.ref para determinar el nombre de la rama actual; si el nombre es refs/heads/main, se ejecutan los pasos siguientes. GitHub Actions procesa la comprobación if y el trabajo solo se envía al ejecutor si el resultado es true. Una vez que el trabajo se envía al ejecutor, el paso se ejecuta y hace referencia a la variable $GITHUB_REF del ejecutor.