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. À l’exception des coureurs à UC unique, tous les GitHub-hosted runners sont des nouvelles machines virtuelles hébergées par GitHub. Les exécuteurs Single-CPU sont hébergés dans un conteneur sur une machine virtuelle partagée, voir Référence des exécuteurs hébergés par GitHub.

Chaque runner est fourni avec l’application runner et d’autres outils préinstallés. GitHub - Des exécuteurs hébergés sont disponibles avec les systèmes d'exploitation Ubuntu Linux, Windows et 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écuteur hébergées standard GitHub. Sinon, si vous disposez d'un abonnement GitHub Team ou GitHub Enterprise Cloud, vous pouvez fournir un exécuteur avec davantage de cœur, ou un exécuteur alimenté par un processeur graphique. Ces machines sont appelées « exécuteur plus grand ». Pour plus d’informations, consultez « Exécuteurs plus grands ».

Exécuteurs plus grands prennent également en charge les images personnalisées, ce qui vous permet de créer et de gérer vos propres images préconfigurées de machine virtuelle. Pour plus d’informations, consultez Images personnalisées.

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

Remarque

Les minutes de droits d’utilisation pour les exécuteurs hébergés GitHub ne sont pas disponibles pour comptes d’utilisateur managés. Enterprise Managed Users qui souhaitent contribuer aux référentiels dans les organisations dont ils ne sont pas membres, puis dupliquer le référentiel de l’organisation, ensuite ouvrir une demande de tirage ciblant le référentiel d’organisation. Ce procédé exécute les flux de travail sur les exécuteurs hébergés par l’organisation GitHub. Pour plus d’informations, consultez À propos d’Enterprise Managed Users.

Images de l’exécuteur

GitHub assure la maintenance de notre propre ensemble d'images de machine virtuelle pour nos exécuteurs hébergés standard. Cela comprend les images pour macOS, linux x64 et Windows. La liste des images et de leurs outils inclus est gérée dans le référentiel actions/runner-images . Nos images arm64 sont des images partenaires. 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.
  • Bien que la virtualisation imbriquée soit techniquement possible lors de l’utilisation des exécuteurs, elle n’est pas officiellement prise en charge. Toute utilisation des machines virtuelles imbriquées est expérimentale et effectuée à votre propre risque, nous ne offrons aucune garantie concernant la stabilité, les performances ou la compatibilité.

Images personnalisées

Les images personnalisées vous permettent de commencer par une image de base GitHub-fournie et de créer une image de machine virtuelle personnalisée adaptée à vos besoins de workflow. Avec des images personnalisées, vous pouvez :

  • Créez des images de machine virtuelle personnalisées à l’aide de la syntaxe YAML de flux de travail existante.
  • Préconfigurez des environnements avec des outils approuvés, des correctifs de sécurité et des dépendances avant le démarrage des workflows.
  • Créez des environnements de base cohérents et validés dans toutes les builds.

Les images personnalisées peuvent inclure du code de référentiel, des images conteneur, des fichiers binaires, des certificats et d’autres dépendances pour créer un environnement de génération cohérent entre les flux de travail. Cela vous permet de contrôler votre chaîne d’approvisionnement. Ils permettent de réduire le temps de configuration, d’améliorer les performances de build et de renforcer la sécurité en réduisant le vecteur d’attaque de surface sur vos images. Les administrateurs peuvent également appliquer des stratégies pour gérer les versions d’image, la rétention et l’âge pour répondre aux exigences de sécurité et de conformité de l’organisation.

Les images personnalisées ne peuvent être utilisées qu’avec des exécuteurs plus volumineux et sont facturées à des tarifs à la minute identiques à ceux des exécuteurs. Le stockage dédié aux images personnalisées est facturé et mesuré via le stockage de GitHub Actions. Pour plus d’informations sur la facturation, consultez Facturation GitHub Actions.

Pour commencer à utiliser des images personnalisées, consultez Utilisation d’images personnalisées.

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 les 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.