Skip to main content

Exécuteurs hébergés par GitHub

GitHub propose des machines virtuelles hébergées pour exécuter les workflows. La machine virtuelle contient un environnement d'outils, de packages et de paramètres utilisables par GitHub Actions.

Vue d'ensemble des exécuteurs hébergés par GitHub

Les exécuteurs sont les machines qui exécutent les travaux dans un workflow GitHub Actions. Par exemple, un exécuteur peut cloner votre dépôt localement, installer un logiciel de test, puis exécuter des commandes qui évaluent votre code.

GitHub fournit des exécuteurs qui vous permettent d'exécuter vos travaux. Toutefois, vous pouvez héberger vos propres exécuteurs. Chaque exécuteur hébergé par GitHub est une nouvelle machine virtuelle hébergée par GitHub sur laquelle l'application d'exécuteur et d'autres outils sont préinstallés. Elle est disponible avec les systèmes d'exploitation Ubuntu Linux, Windows ou macOS. Lorsque vous utilisez un exécuteur hébergé par GitHub, la maintenance et les mises à niveau de la machine sont effectuées automatiquement.

Vous pouvez choisir l'une des options d'exécution hébergées standard GitHub ou, si vous êtes sur le plan GitHub Team ou GitHub Enterprise Cloud, vous pouvez provisionner une exécution avec plus de cœurs, ou une exécution qui est alimentée par un processeur GPU. Ces machines sont appelées « exécuteur plus grand ». Pour plus d’informations, consultez « Exécuteurs plus grands ».

L’utilisation d’exécuteurs hébergés sur GitHub nécessite un accès réseau avec au moins 70 kilobits par seconde de vitesse de téléchargement dans les deux sens.

Images de l’exécuteur

GitHub maintient notre propre ensemble d'images VM pour nos runners hébergés standard. Cela comprend les images pour macOS, linux x64 et Windows. La liste des images et de leurs outils inclus sont gérés dans le référentiel actions/runner-images . Nos images arm64 sont des images partenaires, et celles-ci sont gérées dans le référentiel actions/partner-runner-images.

Logiciels préinstallés pour les images appartenant à GitHub

Les outils logiciels inclus dans nos images GitHub sont mis à jour chaque semaine. Le processus de mise à jour prend plusieurs jours, et la liste des logiciels préinstallés sur la branche main est mise à jour une fois l'ensemble du déploiement terminé.

Les journaux de workflow incluent un lien vers les outils préinstallés sur l'exécuteur exact. Pour trouver ces informations dans le journal de workflow, développez la section Set up job. Sous cette section, développez la section Runner Image. Le lien suivant Included Software décrit les outils préinstallés sur l'exécuteur qui a exécuté le workflow.

Pour plus d’informations, consultez « Affichage de l’historique des exécutions de workflows ».

Les exécuteurs hébergés par GitHub incluent les outils intégrés par défaut du système d'exploitation, en plus des packages listés dans les références ci-dessus. Par exemple, les exécuteurs Ubuntu et macOS incluent grep, find et which, entre autres outils par défaut.

Vous pouvez également afficher une nomenclature logicielle (SBOM) pour chaque build des images de l'exécuteur Windows et Ubuntu. Pour plus d’informations, consultez « Informations de référence sur l’utilisation sécurisée ».

Nous vous recommandons d'utiliser des actions pour interagir avec les logiciels installés sur les exécuteurs. Cette approche présente plusieurs avantages :

  • En général, les actions fournissent des fonctionnalités plus flexibles, comme la sélection de la version, la possibilité de passer des arguments, et des paramètres
  • Cela garantit que les versions d'outils utilisées dans votre workflow restent les mêmes, quelles que soient les mises à jour logicielles

S'il y a un outil que vous souhaitez demander, ouvrez un problème dans actions/runner-images. Ce dépôt contient également des annonces sur toutes les principales mises à jour logicielles sur les exécuteurs.

Remarque

Vous pouvez également installer des logiciels supplémentaires sur les exécuteurs hébergés par GitHub. Consultez Personnalisation des exécuteurs hébergés par GitHub.

Hôtes cloud utilisés par les exécuteurs hébergés par GitHub

GitHub héberge les exécuteurs Linux et Windows sur des machines virtuelles dans Microsoft Azure. L'application d'exécuteur GitHub Actions est installée sur ces machines. L'application d'exécuteur hébergé par GitHub est une duplication (fork) de l'agent Azure Pipelines. Les paquets ICMP entrants sont bloqués pour toutes les machines virtuelles Azure. Par conséquent, les commandes ping ou traceroute peuvent ne pas fonctionner. GitHub héberge des exécuteurs macOS dans des centres de données Azure.

Continuité du workflow

Si les services GitHub Actions sont temporairement indisponibles, alors une exécution de workflow est ignorée si elle n’a pas été mise en file d’attente dans les 30 minutes suivant son déclenchement. Par exemple, si un workflow est déclenché et que les services GitHub Actions ne sont pas disponibles pendant 31 minutes ou plus, l’exécution du workflow n’est pas traitée.

En outre, si l'exécution du workflow a été correctement mise en file d'attente, mais n'a pas été traitée par un exécuteur hébergé par GitHub dans les 45 minutes, l'exécution du workflow mis en file d'attente est ignorée.

Le fichier etc/hosts

Les exécuteurs hébergés GitHub sont approvisionnés avec un fichier etc/hosts qui bloque l’accès réseau à différents pools d’exploration de données de crypto-monnaie et sites malveillants. Les hôtes tels que MiningMadness.com et cpu-pool.com sont redirigés vers localhost afin qu’ils ne présentent pas de risque de sécurité significatif.