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, comorunner.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:
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"
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.