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.

L’exécuteur GitHub Actions est une application open source. Vous pouvez signaler et contribuer à résoudre des problèmes dans le référentiel de l’exécuteur. 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 exécuteur auto-hébergé est automatiquement supprimé de GitHub s’il ne s’est pas connecté à GitHub Actions depuis plus de 14 jours. Un exécuteur auto-hébergé éphémère est automatiquement supprimé de GitHub s’il ne s’est pas connecté à GitHub Actions depuis plus de 1 jour.

La connexion entre exécuteurs auto-hébergés et GitHub passe via HTTPS (port 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 Points de terminaison d’API REST pour les métadonnées.

Note

Certains des domaines listés sont configurés à l'aide d'enregistrements CNAME. Certains pare-feu peuvent nécessiter l'ajout de règles récursives pour tous les enregistrements CNAME. Notez que les enregistrements CNAME peuvent changer à l'avenir et que seuls les domaines listés resteront constants.

Requis pour les opérations essentielles :

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

Requis pour télécharger les actions :

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

Nécessaire pour la publication d’actions immuables :

Shell
ghcr.io

Requis pour charger/télécharger des résumés de projets, des journaux d'activité, des artefacts de workflow et des caches :

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

Requis pour les mises à jour de la version de l'exécuteur :

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

Requis pour récupérer les jetons OIDC :

Shell
*.actions.githubusercontent.com

Nécessaire pour le téléchargement ou la publication de packages ou de conteneurs dans les packages GitHub :

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

Nécessaire pour Stockage Fichiers volumineux Git

Shell
github-cloud.githubusercontent.com
github-cloud.s3.amazonaws.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