Variables del entorno

GitHub establece variables de entorno predeterminadas para cada ejecución de flujo de trabajo de GitHub Actions. También puedes establecer variables de entorno personalizadas en tu archivo de flujo de trabajo.

Nota: Los ejecutores hospedados en GitHub no son compatibles con GitHub Enterprise Server actualmente. Puedes encontrar más información sobre el soporte que se tiene planeado en el futuro en el Itinerario público de GitHub.

Acerca de las variables de entorno

GitHub establece las variables de entorno predeterminadas que están disponibles para cada paso en una ejecución de flujo de trabajo. Las variables de entorno distinguen mayúsculas de minúsculas. Los comandos que se ejecutan en acciones o pasos pueden crear, leer y modificar variables de entorno.

Para establecer variables de entorno personalizadas, debes especificar las variables en el archivo de flujo de trabajo. Puedes definir variables de ambiente para un paso, job o para todo el flujo de trabajo si utilizas las palabras clave jobs.<job_id>.steps[*].env, jobs.<job_id>.env, y env. Para obtener más información, consulta "Sintaxis del flujo de trabajo para GitHub".

jobs:
  weekday_job:
    runs-on: ubuntu-latest
    env:
      DAY_OF_WEEK: Mon
    steps:
      - name: "Hello world when it's Monday"
        if: ${{ env.DAY_OF_WEEK == 'Mon' }}
        run: echo "Hello $FIRST_NAME $middle_name $Last_Name, today is Monday!"
        env:
          FIRST_NAME: Mona
          middle_name: The
          Last_Name: Octocat

Para utilizar el valor de una variable de ambiente en un archivo de flujo de trabajo, deberías utilizar el contexto env. Si quieres utilizar el valor de una variable de ambiente dentro de un ejecutor, puedes utilizar el método normal del sistema operativo ejecutor para leer las variables de ambiente.

Si utilizas la clave run de los archivos del flujo de trabajo para leer las variables de ambiente desde dentro del sistema operativo ejecutor (como se muestra en el ejemplo anterior), dicha variable se sustituirá en el sistema operativo ejecutor después de que se envíe el job al ejecutor. En el caso de otras partes de un archivo de flujo de trabajo, debes utilizar el contexto env para leer las variables de ambiente; esto es porque las claves de flujo de trabajo (tales como if) requieren que se sustituya la variable durante el procesamiento de dicho flujo de trabajo antes de que se envíe al ejecutor.

También puedes utilizar el archivo de ambiente GITHUB_ENV para establecer una variable de ambiente que puedan utilizar los siguientes pasos en un job. Una acción puede utilizar directamente el comando de archivo de ambiente o como un comando de shell en un archivo de flujo de trabajo utilizando la palabra clave run. Para obtener más información, consulta "Comandos de flujo de trabajo para las GitHub Actions."

Variables de entorno predeterminadas

Te recomendamos encarecidamente que las acciones usen variables de entorno para acceder al sistema de archivos en lugar de usar rutas de archivo codificadas de forma rígida. GitHub establece variables de entorno para que las acciones se utilicen en todos los entornos del ejecutador.

Variable de entornoDescripción
CISiempre configurar en true.
GITHUB_WORKFLOWEl nombre del flujo de trabajo.
GITHUB_RUN_IDUn número único para cada ejecución dentro de un repositorio. Este número no cambia si vuelves a ejecutar el flujo de trabajo.
GITHUB_RUN_NUMBERUn número único para cada ejecución de un flujo de trabajo particular en un repositorio. Este número comienza en 1 para los flujos de trabajo que se ejecutan primero, e incrementa con cada ejecución nueva. Este número no cambia si vuelves a ejecutar el flujo de trabajo.
GITHUB_JOBLa job_id del job actual.
GITHUB_ACTIONEl único identificador (id) de la acción.
GITHUB_ACTION_PATHLa ruta en donde se ubica tu acción. Puedes utilizar esta ruta para acceder a los archivos ubicados en el mismo repositorio que tu acción. Esta variable solo es compatible con las acciones compuestas.
GITHUB_ACTIONSSiempre establecido en true cuando GitHub Actions está ejecutando el flujo de trabajo. Puedes usar esta variable para diferenciar cuando las pruebas se ejecutan de forma local o mediante GitHub Actions.
GITHUB_ACTOREl nombre de la persona o de la aplicación que inició el flujo de trabajo. Por ejemplo, octocat.
GITHUB_REPOSITORYEl nombre del repositorio y del propietario. Por ejemplo, octocat/Hello-World.
GITHUB_EVENT_NAMEEl nombre del evento webhook que activó el flujo de trabajo.
GITHUB_EVENT_PATHLa ruta del archivo con la carga completa del evento webhook. Por ejemplo, /github/workflow/event.json.
GITHUB_WORKSPACELa ruta de directorio del espacio de trabajo de GitHub, inicialmente vacía. Por ejemplo, /home/runner/work/my-repo-name/my-repo-name. La acción actions/checkout verificará los archivos, predeterminadamente una copia de tu repositorio, dentro de este directorio.
GITHUB_SHAEl SHA de confirmación que activó el flujo de trabajo. Por ejemplo, ffac537e6cbbf934b08745a378932722df287a53.
GITHUB_REFLa referencia de etiqueta o rama que activó el flujo de trabajo. Por ejemplo, refs/heads/feature-branch-1. Si no hay una rama o una etiqueta disponible para el tipo de evento, la variable no existirá.
GITHUB_HEAD_REFSolo se configura para eventos de solicitudes de cambio. El nombre de la rama principal.
GITHUB_BASE_REFSolo se configura para eventos de solicitudes de cambio. El nombre de la rama base.
GITHUB_SERVER_URLDevuelve la URL del servidor de GitHub Enterprise Server. Por ejemplo: https://[hostname].
GITHUB_API_URLDevuelve la URL de la API. Por ejemplo: http(s)://[hostname]/api/v3.
GITHUB_GRAPHQL_URLDevuelve la URL de la API de GraphQL. Por ejemplo: http(s)://[hostname]/api/graphql.
RUNNER_NAMEEl nombre del ejecutor que ejecuta el job.
RUNNER_OSEl sistema operativo del ejecutor que ejecuta el trabajo. Los valores posibles son Linux, Windows o macOS.
RUNNER_TEMPLa ruta a un directorio temporal en el ejecutor. Este directorio se vacía al inicio y al final de cada job. Nota que los archivos no se eliminarán si la cuenta de usuario del ejecutor no tiene permisos para borrarlos.
RUNNER_TOOL_CACHELa ruta al directorio que contiene las herramientas preinstaladas para los ejecutores hospedados en GitHub. Para obtener más información, consulta la sección "Especificaciones para los ejecutores hospedados en GitHub".

Nota: Si necesitas utilizar la URL de la ejecución de un flujo de trabajo desde dentro de un job, puedes combinar estas variables de ambiente: $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID

Determinar cuándo utilizar las variables de ambiente o contextos predeterminados

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

  • Variables de ambiente predeterminadas: Estas variables existen únicamente en el ejecutor que está ejecutando tu job. Para obtener más información, consulta la sección "Variables de ambiente predeterminadas."
  • Contextos: Puedes utilizar la mayoría de los contextos en cualquier punto de tu flujo de trabajo, incluyendo cuando no estén disponibles las variables de ambiente predeterminadas. Por ejemplo, puedes utilizar contextos con expresiones para llevar a cabo un procesamiento inicial antes de que el job se enrute a un ejecutor para su exclusión; esto te permite utilizar un contexto con la palabra clave condicional if para determinar si se debería ejecutar un paso. Una vez que el job se esté ejecutando, también debes recuperar las variables de contexto para el ejecutor que está ejecutando el trabajo, tal como runner.os. Para encontrar más detalles de dónde puedes utilizar contextos diversos dentro de un flujo de trabajo, consulta "Disponibilidad de contexto".

El siguiente ejemplo ilustra cómo estos tipos de variables de ambiente diferentes pueden utilizarse juntas en el job:

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, el contexto de la declaración if verifica el contexto de github.ref para determinar el nombre de rama actual; si el nombre es refs/heads/main, entonces los siguientes pasos subsecuentes se ejecutarán. El if verifica que se encuentre procesado por GitHub Actions, y que el job solo se envíe al ejecutor si el resultado es Verdadero. Una vez que se envía el job al ejecutor, se ejecuta el paso y se refiere al ambiente de variables $GITHUB_REF para el ejecutor.

Convenciones de nomenclatura para las variables de entorno

Cuando configuras una variable de ambiente personalizada, no puedes utilizar ninguno de los nombres de variable de ambiente predeterminados que se listan anteriormente con el prefijo GITHUB_. Si intentas anular el valor de estas variables de ambiente predeterminadas, se ignorará la tarea.

Toda variable de entorno nueva que configures y que apunte a una ubicación en el sistema de archivos debe tener un sufijo _PATH. Las variables predeterminadas HOME y GITHUB_WORKSPACE son excepciones a esta convención, porque las palabras "inicio" (home) y "espacio de trabajo" (workspace) ya implican una ubicación.

¿Te ayudó este documento?

Política de privacidad

¡Ayúdanos a hacer geniales estos documentos!

Todos los documentos de GitHub son de código abierto. ¿Notas algo que esté mal o que no sea claro? Emite una solicitud de cambios.

Haz una contribución

O, aprende cómo contribuir.