Vue d’ensemble des GitHubexécuteurs hébergés
Les exécuteurs sont les machines qui exécutent des travaux dans un GitHub Actions flux de travail. 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 que vous pouvez utiliser pour exécuter vos tâches, ou vous pouvez [héberger vos propres exécuteurs](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners). À 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 [AUTOTITLE](/actions/reference/runners/github-hosted-runners#single-cpu-runners).
Chaque runner est fourni avec l’application runner et d’autres outils préinstallés. GitHub exécuteurs hébergés sont disponibles avec Ubuntu Linux, Windows ou les systèmes d’exploitation macOS. Lorsque vous utilisez un agent d'exécution hébergé GitHub, l'entretien et la mise à jour du système sont gérés pour vous.
Vous pouvez choisir l’une des options standard d’exécution hébergée GitHub, ou, si vous êtes sur le plan GitHub Team ou le plan GitHub Enterprise Cloud, vous pouvez approvisionner un exécuteur avec plus de cœurs ou un exécuteur fonctionnant avec un processeur GPU. Ces machines sont appelées «exécuteur plus grand ». Pour plus d’informations, consultez Exécuteurs plus grands.
Exécuteurs plus grands prend également en charge les images personnalisées, ce qui vous permet de créer et de gérer vos propres images de machine virtuelle préconfigurées. Pour plus d’informations, consultez [Images personnalisées](#custom-images).
L'utilisation des exécuteurs hébergés GitHub nécessite un accès réseau avec un débit d'envoi et de téléchargement d'au moins 70 kilobits par seconde.
Images de l’exécuteur
GitHub gère 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`](https://github.com/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`](https://github.com/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 ».
GitHubLes exécuteurs hébergés incluent les outils intégrés par défaut du système d’exploitation, en plus des packages répertorié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 runners 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 GitHubimage de base fournie et de créer votre propre image de machine virtuelle personnalisée pour vos besoins de flux de travail. 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 exécuteurs plus grands. Les travaux qui utilisent des images personnalisées sont facturés aux mêmes tarifs par minute que les coureurs. Le stockage des images personnalisées est facturé et tarifé via GitHub Actions le stockage. Pour plus d’informations, consultez « Facturation des actions GitHub ».
Pour commencer à utiliser des images personnalisées, consultez Utilisation d’images personnalisées.
Hôtes cloud utilisés par les agents GitHub hébergés
GitHub héberge des exécuteurs Linux et Windows sur des machines virtuelles dans Microsoft Azure avec l’application d’exécuteur GitHub Actions installée. L’application de runner hébergée GitHub est une bifurcation 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 Azure centres de données.
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 flux de travail a été mise en file d’attente avec succès mais n’a pas été exécutée par un GitHubexécuteur hébergé dans un délai de 45 minutes, l’exécution du flux de travail mise en file d’attente est annulé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.