Ejecutores y recursos de hardware compatibles
Hay disponibles rangos de ejecutores hospedados en GitHub para su uso en repositorios públicos y privados.
Para ver listas de los ejecutores disponibles, consulte:
-
[Ejecutores estándar para repositorios **públicos**](#standard-github-hosted-runners-for-public-repositories) - Ejecutores estándar para repositorios privados
Los ejecutores de Linux alojados en GitHub son compatibles con la aceleración por hardware para herramientas Android SDK, lo que hace que la ejecución de pruebas Android sea mucho más rápida y consuma menos minutos. Para más información sobre la aceleración de hardware de Android, consulta Configuración de la aceleración de hardware para Android Emulator en la documentación de desarrolladores de Android.
Nota:
Las imágenes de -latest runner son las imágenes estables más recientes que proporciona GitHub y puede que no sean la versión más reciente del sistema operativo proporcionada por el proveedor del sistema operativo.
Advertencia
Las imágenes beta y en desuso se proporcionan "tal cual", "con todos sus fallos" y "conforme estén disponibles" y están excluidas del acuerdo de nivel de servicio y de la garantía. Es posible que el soporte al cliente no cubra las imágenes beta.
Ejecutores hospedados en GitHub estándar para repositorios públicos
En el caso de los repositorios públicos, los trabajos que usan las etiquetas de flujo de trabajo que se muestran en la tabla siguiente se ejecutarán con las especificaciones asociadas. A excepción de los ejecutores de CPU única, cada . Runners de CPU única se ejecutan en un contenedor en una VM compartida; consulte Referencia de ejecutores hospedados en GitHub. El uso de los ejecutores estándar hospedados por GitHub es gratuito e ilimitado en repositorios públicos.
| Máquina virtual o contenedor | Procesador (CPU) | Memoria (RAM) | Almacenamiento (SSD) | Arquitectura | Etiqueta de flujo de trabajo |
|---|---|---|---|---|---|
| Linux | 1 | 5 GB | 14 GB | x64 |
ubuntu-slim
|
| Linux | 4 | 16 GB | 14 GB | x64 | , , , |
| Windows | 4 | 16 GB | 14 GB | x64 | , , (versión preliminar pública), |
| Linux | 4 | 16 GB | 14 GB | ARM64 | , |
| Windows | 4 | 16 GB | 14 GB | ARM64 |
windows-11-arm
|
| macOS | 4 | 14 GB | 14 GB | Intel | , |
| macOS | 3 (M1) | 7 GB | 14 GB | ARM64 | , , , , |
Ejecutores GitHub alojados estándar para repositorios internos .
Para repositorios privados, los trabajos que usan las etiquetas de flujo de trabajo que se muestran en la tabla siguiente se ejecutarán en máquinas virtuales con las especificaciones asociadas. Estos ejecutores usan la asignación de minutos gratuitos de la cuenta GitHub y, a continuación, se cobran según las tarifas por minuto. Consulta AUTOTITLE.
| Máquina virtual | Procesador (CPU) | Memoria (RAM) | Almacenamiento (SSD) | Arquitectura | Etiqueta de flujo de trabajo |
|---|---|---|---|---|---|
| Linux | 1 | 5 GB | 14 GB | x64 |
ubuntu-slim
|
| Linux | 2 | 8 GB | 14 GB | x64 | , , , |
| Windows | 2 | 8 GB | 14 GB | x64 | , , , |
| Linux | 2 | 8 GB | 14 GB | ARM64 | , |
| Windows | 2 | 8 GB | 14 GB | ARM64 |
windows-11-arm
|
| macOS | 4 | 14 GB | 14 GB | Intel | , |
| macOS | 3 (M1) | 7 GB | 14 GB | ARM64 | , , , , |
Las bitácoras de flujos de trabajo listan el runner utilizado para llevar a cabo una tarea. Para más información, consulta Visualizar el historial de ejecución del flujo de trabajo.
Limitaciones de los ejecutores de macOS arm64
- Todas las acciones proporcionadas por GitHub son compatibles con los ejecutores hospedados en arm64 GitHub. Sin embargo, las acciones de la comunidad pueden no ser compatibles con arm64 y deben instalarse manualmente en runtime.
- No se admite la virtualización anidada debido a la limitación del marco de virtualización de Apple.
- Las funcionalidades de red, como las redes privadas de Azure y la asignación de direcciones IP estáticas, no están disponibles actualmente para los ejecutores de mayor capacidad de macOS.
- Los ejecutores de macOS arm64 no tienen asignado un UUID/UDID estático porque Apple no admite esta característica. Sin embargo, a los ejecutores de MacOS de Intel se les asigna un UDID estático, específicamente
4203018E-580F-C1B5-9525-B745CECA79EB. Si va a compilar e iniciar sesión en el mismo host en el que planea probar la compilación, puede iniciar sesión con un perfil de aprovisionamiento de desarrollo. Si necesita un UDID estático, puede usar ejecutores de Intel y agregar su UDID a su cuenta de desarrollador de Apple.
Ejecutores con una sola CPU
Los ejecutores de un solo CPU hospedados por GitHub se encuentran disponibles en repositorios públicos y privados. Estos ejecutores, especificados mediante la etiqueta de flujo de trabajo ubuntu-slim, ofrecen una opción de menor costo para ejecutar operaciones ligeras. Este tipo de ejecutor está optimizado para tareas de automatización, gestión de incidencias y trabajos de corta duración. No son adecuados para las típicas compilaciones CI/CD de gran peso.
`ubuntu-slim` los ejecutores ejecutan flujos de trabajo de acciones en Ubuntu Linux, dentro de un contenedor en lugar de una instancia de máquina virtual completa. Cuando comienza el trabajo, GitHub aprovisiona automáticamente un nuevo contenedor para ese trabajo. Todos los pasos del trabajo se ejecutan en el contenedor, lo que permite que los pasos de ese trabajo compartan información utilizando el sistema de archivos del ejecutor. Una vez finalizado el trabajo, el contenedor se retira automáticamente. Cada contenedor proporciona aislamiento de nivel 2 del hipervisor.
Nota:
El contenedor para ejecutores ubuntu-slim se ejecuta en el modo sin privilegios. Esto significa que algunas operaciones que requieren privilegios elevados, como el montaje de sistemas de archivos, el uso de Docker en Docker o el acceso a características de kernel de bajo nivel, no se admiten.
Se instala un conjunto mínimo de herramientas en la imagen del ejecutor ubuntu-slim, adecuado para tareas ligeras. Para obtener más información sobre qué software está instalado en la ubuntu-slim imagen, consulte el archivo LÉAME en el actions/runner-images repositorio.
Límites de uso
Los ejecutores de una sola CPU siguen el mismo modelo de concurrencia que otros ejecutores estándar hospedados por GitHub. Consulta Límites de acciones. La simultaneidad de los ejecutores viene determinada por el plan.
El tiempo de espera del trabajo para los ejecutores con una sola CPU es de 15 minutos. Si un trabajo alcanza este límite, se terminará y fallará.
Ejecutor más grandes
Los clientes de los planes GitHub Team y GitHub Enterprise Cloud pueden elegir entre una variedad de máquinas virtuales administradas que tienen más recursos que los ejecutores estándar hospedados en GitHub. Estas máquinas se denominan "ejecutores más grandes." Ofrecen las siguientes características avanzadas:
- Más RAM, CPU y espacio en disco
- Direcciones IP estáticas
- Redes privadas de Azure
- La capacidad de agrupar ejecutores
- Escalado automático para admitir flujos de trabajo simultáneos
- Ejecutores con tecnología de GPU
Estos ejecutores más grandes están hospedados por GitHub y tienen preinstalada la aplicación de ejecutor y otras herramientas.
Para más información, consulta Uso de ejecutores más grandes.
Privilegios administrativos
Las máquinas virtuales Linux y macOS se ejecutan sin la contraseña sudo. Cuando necesite ejecutar comandos o instalar herramientas que requieran más privilegios que el usuario actual, puede usar sudo sin tener que introducir una contraseña. Para obtener más información, consulta el 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 Funcionamiento del control de cuentas de usuario en la documentación de Windows.
Direcciones IP
Para ver una lista de 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 del punto de conexión GET /meta. Para más información, consulta Puntos de conexión de la API de REST para metadatos.
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.
Ya que hay muchos rangos de direcciones IP para los ejecutores hospedados en GitHub, no te recomendamos que los utilices como listas de direcciones permitidas para tus recursos internos. En su lugar, recomendamos usar ejecutor más grande con un intervalo de direcciones IP estáticas o ejecutores autohospedados. Para más información, consulta Uso de ejecutores más grandes o Ejecutores autohospedados.
La lista de direcciones IP de GitHub Actions que devuelve la API se actualiza una vez por semana.
Requisitos de comunicación para los ejecutores hospedados en GitHub
Un ejecutor hospedado en GitHub debe establecer conexiones con los puntos de conexión propiedad de GitHub para realizar operaciones de comunicación fundamentales. Además, el ejecutor puede requerir acceso a redes adicionales que especifiques o utilices en una acción.
A fin de garantizar comunicaciones adecuadas para ejecutores hospedados en GitHub entre redes dentro de la configuración, asegúrate de que se permiten las siguientes comunicaciones.
Nota:
Algunos de los dominios que se enumeran antes se configuran mediante registros CNAME. Es posible que algunos firewalls necesiten agregar reglas de forma recursiva para todos los registros CNAME. Tenga en cuenta que es posible que los registros CNAME cambien en el futuro y que solo los dominios enumerados permanezcan constantes.
Necesarios para operaciones esenciales:
github.com api.github.com *.actions.githubusercontent.com
github.com
api.github.com
*.actions.githubusercontent.com
**Necesarios para acciones de descarga:**
codeload.github.com
codeload.github.com
**Necesarios para cargar o descargar resúmenes de trabajos, registros, artefactos de flujo de trabajo y cachés:**
results-receiver.actions.githubusercontent.com *.blob.core.windows.net
results-receiver.actions.githubusercontent.com
*.blob.core.windows.net
**Necesarios para las actualizaciones de versión del ejecutor:**
objects.githubusercontent.com objects-origin.githubusercontent.com github-releases.githubusercontent.com github-registry-files.githubusercontent.com
objects.githubusercontent.com
objects-origin.githubusercontent.com
github-releases.githubusercontent.com
github-registry-files.githubusercontent.com
**Necesarios para recuperar tokens de OIDC:**
*.actions.githubusercontent.com
*.actions.githubusercontent.com
**Necesario para descargar o publicar paquetes o contenedores en GitHub Packages:**
*.pkg.github.com pkg-containers.githubusercontent.com ghcr.io
*.pkg.github.com
pkg-containers.githubusercontent.com
ghcr.io
**Se necesita para Almacenamiento de archivos de gran tamaño de Git**
github-cloud.githubusercontent.com github-cloud.s3.amazonaws.com
github-cloud.githubusercontent.com
github-cloud.s3.amazonaws.com
Necesario para los trabajos para Dependabot updates
dependabot-actions.githubapp.com
dependabot-actions.githubapp.com
**Necesario para descargar recursos de versión:**
release-assets.githubusercontent.com
release-assets.githubusercontent.com
**Necesario para la red virtual:**
api.snapcraft.io
api.snapcraft.io
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 a fin de construir rutas de acceso 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 webhook que desencadenó 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 Almacenamiento de información en variables.
Sistema de archivos del contenedor de Docker
Las acciones que se ejecutan en los contenedores Docker tienen directorios estáticos en la ruta de acceso /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:** El usuario de Docker predeterminado (root) debe ejecutar GitHub Actions. Asegúrese de que Dockerfile no establece la instrucción `USER`; de lo contrario, no podrás acceder a `GITHUB_WORKSPACE`. /github/workflow