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 los ejecutores autoalojados
Los ejecutores auto-hospedados ofrecen más control sobre las herramientas del hardware, sistema operativo y software que lo que ofrecen los ejecutores hospedados en GitHub. Con los ejecutores auto-hospedados, puedes elegir crear una configuración de hardware personalizada con más poder de procesamiento o más memoria para ejecutar jobs más grandes, instalar software disponible en tu red local, y escoger un sistema operativo que no se ofrezca en los ejecutores hospedados en GitHub. Los ejecutores auto-hospedados pueden ser físicos, virtuales, estar en un contenedor, en los servidores del usuario, o en la nube.
Puedes agregar ejecutores auto-hospedados en varios niveles dentro de la jerarquía de administración:
- Los ejecutores a nivel de repositorio están dedicados a un solo repositorio.
- Los ejecutores a nivel de organización pueden procesar jobs para varios repositorios dentro de una organización.
- Los ejecutores a nivel de empresa puede asignarse a varias organizaciones en una cuenta empresarial.
La máquina de tu ejecutor se conecta aGitHub Enterprise Server utilizando la aplicación para ejecutores auto-hospedados de GitHub Actions. La aplicación ejecutora de GitHub Actions es de código abierto. Puedes contribuir y emitir informes de problemas en el repositorio runner. Cuando se lanza una nueva versión, la aplicación del ejecutor se actualiza automáticamente cuando se asigna un job al ejecutor, o dentro de una semana de lanzamiento si dicho ejecutor no se ha asignado a ningún job.
Un ejecutor auto-hospedado se eliminará automáticamente de GitHub Enterprise Server si no se ha conectado a GitHub Actions por más de 30 días.
Para obtener más información acerca de la instalación y el uso de los ejecutores autoalojados, consulta "Agregar ejecutores autoalojados" y "Usar ejecutores autoalojados en un flujo de trabajo."
Diferencias entre ejecutores alojados en GitHub y autoalojados
Los ejecutores alojados en GitHub ofrecen una manera más rápida y sencilla de ejecutar tus flujos de trabajo, mientras que los ejecutores autoalojados son una manera altamente configurable de ejecutar flujos de trabajo en tu propio entorno personalizado.
Ejecutores alojados en GitHub:
- Reciben actualizaciones automáticas para el sistema operativo, paquetes y herramientas pre-instalados, y la aplicación del ejecutor auto-hospedado.
- Son administrados y mantenidos por GitHub.
- Proporcionan una instancia limpia para cada ejecución de trabajo.
- Usan minutos libres en tu plan de GitHub, con tarifas por minuto aplicadas después de superar los minutos libres.
Ejecutores autoalojados:
- Reciben actualizaciones automáticas únicamente para la aplicación del ejecutor auto-hospedado. Eres responsable de actualizar el sistema operativo y el resto del software.
- Puedes usar los servicios en la nube o las máquinas locales que ya pagas.
- Son personalizables para tu hardware, sistema operativo, software y requisitos de seguridad.
- No es necesario tener una instancia limpia para cada ejecución de trabajo.
- Son de uso gratuito con las GitHub Actions, pero eres responsable del costo de mantener tus máquinas de ejecutores.
Requisitos para máquinas de ejecutores autoalojados
Puedes usar cualquier máquina como ejecutor autoalojado, siempre que cumpla con estos requisitos:
- Puedes instalar y ejecutar la aplicación del ejecutor autoalojado en la máquina. Para obtener más información, consulta la sección "Arquitecturas y sistemas operativos compatibles para ejecutores auto-hospedados".
- La máquina puede comunicarse con GitHub Actions. Para obtener más información, consulta "La comunicación entre ejecutores autoalojados y GitHub."
- La máquina tiene suficientes recursos de hardware para el tipo de flujos de trabajo que planeas ejecutar. La propia aplicación del ejecutor autoalojado solo requiere unos recursos mínimos.
- Si quieres ejecutar flujos de trabajo que usan acciones del contenedor Docker o contenedores de servicio, debes usar una máquina Linux y Docker debe estar instalado.
Límites de uso
Hay algunos límites para el uso de las GitHub Actions cuando se utilizan ejecutores auto-hospedados. Estos límites están sujetos a cambios.
- Tiempo de ejecución del flujo de trabajo - Cada flujo de trabajo se limita a 72 horas. Si un flujo de trabajo llega a este límite, se cancelará.
- Tiempo de cola de espera para el job - Cada job para ejecutores auto-hospedados puede ponerse en cola de espera por un máximo de 24 horas. Si un ejecutor auto-hospedado no comienza a ejecutar el job dentro de este límite de tiempo, dicho job se terminará y no se podrá completar.
- Solicitudes de la API - Puedes ejecutar hasta 1000 solicitudes de API en una hora en todas las acciones dentro de un repositorio. Si esto se excede, los llamados adicionales a la API fallarán, lo cual puede ocasionar que los jobs fallen también.
- Matiz de jobs - Una matriz de jobs puede generar un máximo de 256 jobs por ejecución de flujo de trabajo. Este límite también aplica para los ejecutores auto-hospedados.
- Lista de ejecución de flujos de trabajo - No se pueden poner en cola más de 500 ejecuciones de flujo de trabajo por intervalo de 10 segundos por repositorio. Si una ejecución de flujo de trabajo lelga a su límite, la ejecución de flujo de trabajo se termina y falla en completarse.
Continuidad de los flujos de trabajo para los ejecutores auto-hospedados
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á.
Sistemas operativos y arquitecturas compatibles para los ejecutores auto-hospedados
Los siguientes sistemas operativos son compatibles con la aplicación del ejecutor autoalojado.
Linux
- Red Hat Enterprise Linux 7 o superior
- CentOS 7 o superior
- Oracle Linux 7
- Fedora 29 o posterior
- Debian 9 o posterior
- Ubuntu 16.04 o posterior
- Linux Mint 18 o posterior
- openSUSE 15 o posterior
- SUSE Enterprise Linux (SLES) 12 SP2 o posterior
Windows
- Windows 7 64-bit
- Windows 8.1 64-bit
- Windows 10 64-bit
- Windows Server 2012 R2 64-bit
- Windows Server 2016 64-bit
- Windows Server 2019 64-bit
macOS
- macOS 10.13 (High Sierra) o posterior
Arquitecturas
Las siguientes arquitecturas de procesamiento son compatibles para la aplicación del ejecutor auto-hospedado.
x64
- Linux, macOS, Windows.ARM64
- Solo Linux.ARM32
- Solo Linux.
La comunicación entre ejecutores autoalojados y GitHub
Podría requerirse algo de configuración adicional para utilizar acciones de GitHub.com con GitHub Enterprise Server o para utilizar las acciones de actions/setup-LANGUAGE
con ejecutores auto-hospedados que no tengan acceso a internet. Para obtener más información, consulta "La comunicación entre ejecutores autoalojados y GitHub."
La comunicación entre ejecutores autoalojados y GitHub Enterprise Server
El ejecutor auto-hospedado sondea a GitHub Enterprise Server para solicitar actualizaciones de aplicaciones y para revisar si hay jobs en cola para su procesamiento. El ejecutor auto-hospedado utiliza un sondeo largo de HTTPS que abre una conexión a GitHub Enterprise Server por 50 segundos, y si no recibe respuesta alguna, expira y crea un nuevo sondeo largo. La aplicación debe estar ejecutándose en la máquina para aceptar y ejecutar trabajos de GitHub Actions.
Debes asegurarte de que la máquina tenga el acceso a la red adecuado para comunicarse con tu instancia de GitHub Enterprise Server.
También puedes utilizar los ejecutores auto-hospedados con un servidor proxy. Para obtener más información, consulta la sección "Utilizar un servidor proxy con ejecutores auto-hospedados".
Seguridad de ejecutores autoalojdados con repositorios públicos
Te recomendamos que solo utilices los ejecutores auto-hospedados con los repositorios privados. Esto se debe a que tu repositorio podría ejecutar código peligroso en tu máquina de ejecutor auto-hospedado potencialmente al crear una solicitud de cambios que excluya el código en un flujo de trabajo.
Esto no es un problema con los ejecutores hospedados en GitHub, porque cada ejecutor hospedado en GitHub siempre es una máquina virtual aislada y limpia y se destruye al final de la ejecución del trabajo.
Los flujos de trabajo que no son de confianza y se ejecutan en tu ejecutor autoalojado plantean riesgos de seguridad considerables para tu máquina y entorno de red, en especial si tu máquina se mantiene en su entorno entre trabajos. Algunos de los riesgos incluyen:
- Programas maliciosos que se ejecutan en la máquina.
- Escapar del entorno Sandbox del ejecutor de la máquina.
- Exponer el acceso al entorno de red de la máquina.
- Mantener datos peligrosos o no deseados en la máquina.