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 ejecutores alojados en GitHub
Un ejecutor alojado en GitHub es una máquina virtual alojada por GitHub con la aplicación del ejecutor GitHub Actions instalada. GitHub ofrece ejecutores con sistemas operativos Linux, Windows y macOS.
Cuando usas un ejecutor alojado en GitHub, se contemplan el mantenimiento de la máquina y las actualizaciones. Puedes ejecutar flujos de trabajo directamente en la máquina virtual o en un contenedor Docker.
Puedes especificar el tipo de ejecutor para cada puesto en un flujo de trabajo. Cada puesto en un flujo de trabajo se ejecuta en una instancia nueva de la máquina virtual. Todos los pasos del trabajo se ejecutan en la misma instancia de la máquina virtual, lo que permite que las acciones de ese trabajo compartan información usando el sistema de archivos.
La aplicación ejecutora de GitHub Actions es de código abierto. Puedes contribuir y emitir informes de problemas en el repositorio runner.
Hosts en la nube para ejecutores alojados en GitHub
GitHub aloja ejecutores de Linux y Windows en máquinas virtuales Standard_DS2_v2 en Microsoft Azure con la aplicación del ejecutor de GitHub Actions instalada. La aplicación del ejecutor alojada en GitHub es una bifurcación del agente de Azure Pipelines. Los paquetes ICMP entrantes están bloqueados para todas las máquinas virtuales de Azure, por lo tanto, es posible que los comandos ping o traceroute no funcionen. Para obtener más información acerca de los recursos de la máquina Standard_DS2_v2, consulta "Dv2 y DSv2-series"en la documentación de Microsoft Azure.
GitHub hospeda ejecutores de macOS en la nube de macOS propia de GitHub.
Continuidad del flujo de trabajo para los ejecutores hospedados en GitHub
Si los servicios de las GitHub Actions se encuentran temporalmente no disponibles, entonces se descartará una ejecución de flujo de trabajo si no se puso en cola en los primeros 30 minutos después de activarse. Por ejemplo, si un flujo de trabajo se activa y los servicios de las GitHub Actions no están disponibles por 31 minutos o más, entonces la ejecución de flujo de trabajo no se procesará.
Adicionalmente, si la ejecución de flujo de trabajo se puso en cola con éxito, pero no la ha procesado un ejecutor hospedado en GitHub en los 45 minutos subsecuentes, entonces la ejecución de flujo de trabajo en cola se descartará.
Privilegios administrativos de los ejecutores alojados en GitHub
Las máquinas virtuales Linux y macPS se ejecutan sin la contraseña sudo
. Cuando necesitas ejecutar comandos o instalar herramientas que requieren más privilegios que el usuario actual, puedes usar sudo
sin la necesidad de brindar una contraseña. Para obtener más información, consulta "Manual de sudo."
Las máquinas virtuales de Windows están configuradas para ejecutarse como administradores con el control de cuentas de usuario (UAC) inhabilitado. Para obtener más información, consulta "Cómo funciona el control de cuentas de usuario" en la documentación de Windows.
Ejecutores y recursos de hardware compatibles
Especificación de hardware para las máquinas virtuales Windows y Linux:
- CPU de 2 núcleos
- 7 GB de memoria RAM
- 14 GB de espacio en el disco SSD
Especificación de hardware para las máquinas virtuales macOS:
- CPU de 3 núcleos
- 14 GB de memoria RAM
- 14 GB de espacio en el disco SSD
Entorno virtual | Etiqueta de flujo de trabajo YAML | Notas |
---|---|---|
Windows Server 2022[beta] | windows-2022 |
La etiqueta de windows-latest actualmente utiliza la imagen de ejecutor de Windows Server 2019.
|
Windows Server 2019 | windows-latest o windows-2019 |
|
Windows Server 2016 | windows-2016 |
|
Ubuntu 20.04 | ubuntu-latest o ubuntu-20.04 |
|
Ubuntu 18.04 | ubuntu-18.04 |
|
macOS Big Sur 11 | macos-11 |
La etiqueta de macos-latest actualmente utiliza la imagen de ejecutor de macOS 10.15.
|
macOS Catalina 10.15 | macos-latest or macos-10.15 |
Nota: Las imágenes beta se proporcionan "tal cual", "con todas las fallas" y "tal como están disponibles" y se excluyen del acuerdo de nivel de servicio y de la garantía. El soporte al cliente podría no cubrir las imágenes beta.
Las bitácoras de flujos de trabajo listan los ejecutores que se usan para ejecutar un job. Para obtener más información, consulta la sección "Visualizar el historial de ejecuciones de un flujo de trabajo".
Software compatible
Las herramientas de software que se incluyen en los ejecutores hospedados en GitHub se actualizan semanalmente. El proceso de actualización toma varios días y la lista de software pre-instalado en la rama main
se actualiza después de que termine todo el despliegue.
Software preinstalado
Las bitácoras de flujo de trabajo incluyen un enlace a las herramientas preinstaladas en el ejecutor exacto. Para encontrar eta información en la bitácora del flujo de trabajo, expande la sección Configurar job
. Debajo de esta sección, expande la sección Ambiente Virtual
. El enlace que sigue de Software Incluído
describirá las herramientas preinstaladas en el ejecutor que ejecutó el flujo de trabajo. Para obtener más información, consulta la sección "Ver el hstorial de ejecuciones del flujo de trabajo".
Para encontrar una lista general de las herramientas que se incluyen en cada sistema operativo de los ejecutores, visita los siguientes enlaces:
- Ubuntu 20.04 LTS
- Ubuntu 18.04 LTS
- Windows Server 2022
- Windows Server 2019
- Windows Server 2016
- macOS 11
- macOS 10.15
Los ejecutores alojados en GitHub incluyen las herramientas integradas predeterminadas del sistema operativo, además de los paquetes enumerados en las referencias anteriores. Por ejemplo, los ejecutores de Ubuntu y macOS incluyen grep
, find
y which
, entre otras herramientas predeterminadas.
Utilizar el software preinstalado
Te recomendamos utilizar acciones para interactuar con el software instalado en los ejecutores. Este acercamiento tiene varios beneficios:
- Habitualmente, las acciones proporcionan una funcionalidad más flexible, como la selección de versiones, la capacidad de pasar argumentos y los parámetros
- Garantiza que las versiones de herramienta que se utilizan en tu flujo de trabajo permanecerán iguales sin importar las actualizaciones de software
Si hay alguna herramienta que quieras solicitar, abre una propuesta en actions/virtual-environments. Este repositorio también contiene anuncios sobre todas las actualizaciones de software principales en los ejecutores.
Instalar software adicional
Puedes instalar software adicional en los ejecutores hospedados en GitHub. Para obtener más información, consulta la sección Personalizar los ejecutores hospedados en GitHub".
Direcciones IP
Nota: Si usas una lista de direcciones IP permitidas para tu cuenta de organización o de empresa GitHub, no puedes usar ejecutores alojados en GitHub y, en su lugar, debes usar ejecutores autoalojados. Para obtener más información, consulta "Acerca de los ejecutores autoalojados."
Los ejecutores de Windows y de Ubuntu se hospedan en Azure y, subsecuentemente, tienen los mismos rangos de direcciones IP que los centros de datos de Azure. Los ejecutores de macOS se hospedan en la nube de macOS propia de GitHub.
Para obtener una lista de los rangos de direcciones IP que utiliza GitHub Actions para los ejecutores hospedados en GitHub, puedes utilizar la API de REST de GitHub. Para obtener más información, consulta la clave actions
en la respuesta de la terminal de Obtener información meta de GitHub". Puedes utilizar esta lista de direcciones IP si requieres prevenir acceso no autorizados a tus recursos internos mediante una lista de direcciones IP permitidas.
La lista de direcciones IP permitidas de GitHub Actions que devuelve la API se actualiza una vez por semana.
Sistemas de archivos
GitHub ejecuta acciones y comandos de shell en directorios específicos en la máquina virtual. Las rutas de archivo en las máquinas virtuales no son estáticas. Usa las variables de entorno que proporciona GitHub para construir rutas de archivo para los directorios home
, workspace
y workflow
.
Directorio | Variable de entorno | Descripción |
---|---|---|
home | HOME | Contiene datos relacionados con el usuario. Por ejemplo, este directorio podría contener las credenciales de un intento de inicio de sesión. |
workspace | GITHUB_WORKSPACE | Las acciones y los comandos del shell se ejecutan en este directorio. Una acción puede modificar los contenidos de este directorio, al que pueden tener acceso acciones posteriores. |
workflow/event.json | GITHUB_EVENT_PATH | La carga POST del evento de webhook que activó el flujo de trabajo. GitHub reescribe esto cada vez que se ejecuta una acción para aislar el contenido del archivo entre acciones. |
Para obtener una lista de las variables de entorno que crea GitHub para cada flujo de trabajo, consulta "Usar variables de entorno".
Sistema de archivos del contenedor de Docker
Las acciones que se ejecutan en contenedores Docker tienen directorios estáticos en la ruta /github
. Sin embargo, te recomendamos encarecidamente que uses las variables de entorno predeterminadas para construir rutas de archivos en contenedores de Docker.
GitHub se reserva el prefijo de ruta /github
y crea tres directorios para las acciones.
/github/home
/github/workspace
- Nota:GitHub Actions debe ejecutarse por el usuario predeterminado (root) de Docker. Asegúrate de que tu Dockerfile no configure la instrucción deUSER
, de lo contrario, no podrás acceder aGITHUB_WORKSPACE
./github/workflow