Nota: GitHub Actions estuvo disponible para GitHub Enterprise Server 2.22 como un beta limitado. El beta terminó. GitHub Actions está ahora disponible habitualmente en GitHub Enterprise Server 3.0 o superior. Para obtener más información, consulta la sección de notas de lanzamiento para GitHub Enterprise Server 3.0.
- Para obtener más información acerca de cómo mejorar a GitHub Enterprise Server 3.0 o superior, consulta la sección "Mejorar a GitHub Enterprise Server".
- Para obtener más información acerca de configurar las GitHub Actions después de tu mejora, consulta la documentación de GitHub Enterprise Server 3.0.
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 el comando de flujo de trabajo set-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 set-env
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 entorno | Descripción |
---|---|
CI | Siempre configurar en true . |
GITHUB_WORKFLOW | El nombre del flujo de trabajo. |
GITHUB_RUN_ID | Un 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_NUMBER | Un 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_JOB | La job_id del job actual. |
GITHUB_ACTION | El único identificador (id ) de la acción. |
GITHUB_ACTION_PATH | La 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_ACTIONS | Siempre 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_ACTOR | El nombre de la persona o de la aplicación que inició el flujo de trabajo. Por ejemplo, octocat . |
GITHUB_REPOSITORY | El nombre del repositorio y del propietario. Por ejemplo, octocat/Hello-World . |
GITHUB_EVENT_NAME | El nombre del evento webhook que activó el flujo de trabajo. |
GITHUB_EVENT_PATH | La ruta del archivo con la carga completa del evento webhook. Por ejemplo, /github/workflow/event.json . |
GITHUB_WORKSPACE | La 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_SHA | El SHA de confirmación que activó el flujo de trabajo. Por ejemplo, ffac537e6cbbf934b08745a378932722df287a53 . |
GITHUB_REF | La 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_REF | Solo se configura para eventos de solicitudes de cambio. El nombre de la rama principal. |
GITHUB_BASE_REF | Solo se configura para eventos de solicitudes de cambio. El nombre de la rama base. |
GITHUB_SERVER_URL | Devuelve la URL del servidor de GitHub Enterprise Server. Por ejemplo: https://[hostname] . |
GITHUB_API_URL | Devuelve la URL de la API. Por ejemplo: http(s)://[hostname]/api/v3 . |
GITHUB_GRAPHQL_URL | Devuelve la URL de la API de GraphQL. Por ejemplo: http(s)://[hostname]/api/graphql . |
RUNNER_NAME | El nombre del ejecutor que ejecuta el job. |
RUNNER_OS | El sistema operativo del ejecutor que ejecuta el trabajo. Los valores posibles son Linux , Windows o macOS . |
RUNNER_TEMP | La 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_CACHE | La 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 comorunner.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.