Skip to main content

Communicating with self-hosted runners

Your self-hosted runners can communicate with GitHub

A self-hosted runner connects to GitHub to receive job assignments and to download new versions of the runner application. The self-hosted runner uses an HTTPS long poll that opens a connection to GitHub for 50 seconds, and if no response is received, it then times out and creates a new long poll. The application must be running on the machine to accept and run GitHub Actions jobs.

La aplicación ejecutora de GitHub Actions es de código abierto. Puede contribuir y presentar incidencias en el repositorio runner. When a new version is released, the runner application automatically updates itself when a job is assigned to the runner, or within a week of release if the runner hasn't been assigned any jobs.

Un ejecutor auto-hospedado se eliminará automáticamente de GitHub si no se ha conectado a GitHub Actions durante más de 14 días. Un ejecutor auto-hospedado efímero se eliminará automáticamente de GitHub si no se ha conectado a GitHub Actions durante más de 1 día.

La conexión entre los ejecutores autohospedados y GitHub es a través de HTTPS (puerto 443).

Since the self-hosted runner opens a connection to GitHub, you do not need to allow GitHub to make inbound connections to your self-hosted runner.

You must ensure that the machine has the appropriate network access with at least 70 kilobits per second upload and download speed to communicate with the GitHub hosts listed below. Some hosts are required for essential runner operations, while other hosts are only required for certain functionality.

You can use the REST API to get meta information about GitHub, including the IP addresses of GitHub services. See Puntos de conexión de la API de REST para metadatos.

Note

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:

Shell
github.com
api.github.com
*.actions.githubusercontent.com

Necesarios para acciones de descarga:

Shell
codeload.github.com
pkg.actions.githubusercontent.com

Necesario para publicar acciones inmutables:

Shell
ghcr.io

Necesarios para cargar o descargar resúmenes de trabajos, registros, artefactos de flujo de trabajo y cachés:

Shell
results-receiver.actions.githubusercontent.com
*.blob.core.windows.net

Necesarios para las actualizaciones de versión del ejecutor:

Shell
objects.githubusercontent.com
objects-origin.githubusercontent.com
github-releases.githubusercontent.com
github-registry-files.githubusercontent.com

Necesarios para recuperar tokens de OIDC:

Shell
*.actions.githubusercontent.com

Necesario para descargar o publicar paquetes o contenedores en GitHub Packages:

Shell
*.pkg.github.com
pkg-containers.githubusercontent.com
ghcr.io

Se necesita para Almacenamiento de archivos de gran tamaño de Git

Shell
github-cloud.githubusercontent.com
github-cloud.s3.amazonaws.com

Necesario para los trabajos para Dependabot updates

Shell
dependabot-actions.githubapp.com

In addition, your workflow may require access to other network resources.

If you use an IP address allow list for your GitHub organization or enterprise account, you must add your self-hosted runner's IP address to the allow list. See Managing allowed IP addresses for your organization or Enforcing policies for security settings in your enterprise.

Further reading