Exécuteurs et ressources matérielles pris en charge
Différentes catégories de runners hébergés par GitHub peuvent être utilisées dans les dépôts publics et privés.
Pour les listes des coureurs disponibles, voir :
Runners standard pour les dépôts privés et internes
GitHub-Les exécuteurs Linux hébergés prennent en charge l’accélération matérielle pour les outils android SDK, ce qui rend l’exécution de tests Android beaucoup plus rapide et consomme moins de minutes. Pour plus d’informations sur l’accélération matérielle Android, consultez Configurer l’accélération matérielle pour l’émulateur Android dans la documentation des développeurs Android.
Remarque
Les -latest images de runner sont les dernières images stables que GitHub fournit et ne sont pas nécessairement la version la plus récente du système d’exploitation disponible chez l’éditeur du système d’exploitation.
Avertissement
Les images bêta et dépréciées sont fournies « en l’état », « avec toutes les imperfections » et « selon la disponibilité », et sont exclues du contrat de niveau de service et de la garantie. Les images bêta peuvent ne pas être couvertes par le service client.
Exécuteurs hébergés standard GitHubpour les référentiels publics
Pour les dépôts publics, les travaux utilisant les étiquettes de flux de travail indiquées dans le tableau ci-dessous s’exécutent avec les spécifications associées. À 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. L’utilisation des exécuteurs hébergés standard GitHub est gratuite et illimitée sur les référentiels publics.
| Machine virtuelle / conteneur | Processeur (CPU) | Mémoire (RAM) | Stockage (SSD) | Architecture | Étiquette de workflow |
|---|---|---|---|---|---|
| Linux | 1 | 5 GB | 14 GB | x64 |
ubuntu-slim
|
| Linux | 4 | 16 Go | 14 Go | x64 |
|
Exécuteurs standard hébergés GitHubpour référentiels internes et privés
Pour les référentiels internes et privés, les travaux utilisant les étiquettes de flux de travail indiquées dans le tableau ci-dessous s’exécutent sur des machines virtuelles avec les spécifications associées. Ces coureurs utilisent l’allocation de votre GitHub compte de minutes gratuites, puis sont facturés aux tarifs par minute. Consultez « Tarification des runners Actions ».
| Machine virtuelle | Processeur (CPU) | Mémoire (RAM) | Stockage (SSD) | Architecture | Étiquette de workflow |
|---|---|---|---|---|---|
| Linux | 1 | 5 GB | 14 GB | x64 |
ubuntu-slim
|
| Linux | 2 | 8 Go | 14 Go | x64 |
|
Remarque
Les runners macOS ne sont pas disponibles sur les sous-domaines de GHE.com, tels que octocorp.ghe.com.
Les journaux de workflow répertorient l’exécuteur utilisé pour exécuter un travail. Pour plus d’informations, consultez « Affichage de l’historique des exécutions de workflows ».
Limitations pour les exécuteurs macOS arm64
- Toutes les actions fournies par GitHub sont compatibles avec les exécuteurs hébergés par GitHub arm64. Toutefois, les actions de communauté peuvent ne pas être compatibles avec arm64 et doivent peut-être installées manuellement au moment du runtime.
- La virtualisation imbriquée n’est pas prise en charge en raison de la limitation du Framework de virtualisation d’Apple.
- Les fonctionnalités de mise en réseau telles que la mise en réseau privée Azure et l’affectation d’adresses IP statiques ne sont actuellement pas disponibles pour les exécuteurs macOS de plus grande taille.
- Les exécuteurs macOS arm64 ne disposent pas d’un UUID/UDID statique qui leur est attribué, car Apple ne prend pas en charge cette fonctionnalité. Toutefois, les exécuteurs Intel MacOS se voient attribuer un UDID statique, en particulier
4203018E-580F-C1B5-9525-B745CECA79EB. Si vous générez et signez sur le même hôte que celui sur lequel vous envisagez de tester la build, vous pouvez vous connecter avec un profil d’approvisionnement de développement. Si vous avez besoin d’un UDID statique, vous pouvez utiliser des exécuteurs Intel et ajouter leur UDID à votre compte de développeur Apple. - Les runners macOS ne sont pas disponibles sur les sous-domaines de GHE.com, tels que
octocorp.ghe.com.
Exécuteurs monoprocesseurs
Les runners hébergés Single-CPU GitHub sont disponibles à la fois dans les dépôts publics et privés. Ces agents, spécifiés à l’aide du libellé de flux de travail ubuntu-slim, offrent une option à moindre coût pour l’exécution d’opérations légères. Ce type d’exécuteur est optimisé pour les tâches d’automatisation, les opérations de résolution des problèmes et les travaux de courte durée. Ils ne conviennent pas aux builds CI/CD lourds typiques.
ubuntu-slim Les exécuteurs exécutent des workflows Actions dans Ubuntu Linux, à l’intérieur d’un conteneur plutôt qu’une instance de machine virtuelle complète. Une fois le travail commencé, GitHub provisionne automatiquement un nouveau conteneur pour ce travail. Toutes les étapes du travail s’exécutent dans le conteneur, ce qui leur permet de partager des informations via le système de fichiers de l’exécuteur. Une fois le travail terminé, le conteneur est automatiquement désactivé. Chaque conteneur fournit l’isolation d’hyperviseur de niveau 2.
Remarque
Le conteneur pour les exécuteurs ubuntu-slim s’exécute en mode non privilégié. Cela signifie que certaines opérations nécessitant des privilèges élevés( comme le montage de systèmes de fichiers, l’utilisation de Docker-in-Docker ou l’accès aux fonctionnalités de noyau de bas niveau) ne sont pas prises en charge.
Un ensemble minimal d’outils est installé sur l’image ubuntu-slim de l’exécuteur, adapté aux tâches légères. Pour plus d’informations sur le logiciel installé sur l’image ubuntu-slim , consultez le fichier README dans le actions/runner-images référentiel.
Limites d’utilisation
Les runners single-CPU suivent le même modèle de concurrence que les autres runners standard hébergés sur GitHub. Consultez Limites d’Actions. Les paramètres d’accès concurrentiel pour les exécuteurs sont déterminées par votre plan.
Le délai d’expiration du travail pour les exécuteurs à processeur unique est de 15 minutes. Si une tâche atteint cette limite, elle est interrompue et échoue.
Exécuteur de plus grande taille
Exécuteur de plus grande taille sont disponibles pour les organisations et les entreprises avec les offres GitHub Team et GitHub Enterprise Cloud.
Exécuteur de plus grande taillesont des machines virtuelles managées avec plus de ressources que les exécuteurs hébergés standardGitHub. Elles offrent les fonctionnalités avancées suivantes :
- Plus de RAM, d’UC et d’espace disque
- Adresses IP statiques
- mise en réseau privée Azure
- La possibilité de regrouper des runners
- Mise à l’échelle automatique pour prendre en charge les flux de travail simultanés
- Runners avec GPU
Celles-ci exécuteurs plus grands sont hébergées par GitHub et disposent de l’application runner et d’autres outils préinstallés.
Pour plus d’informations, consultez « Utilisation des exécuteurs plus grands ».
Privilèges d'administration
Les machines virtuelles Linux aussi bien que macOS s'exécutent à l'aide de sudo sans mot de passe. Lorsque vous devez exécuter des commandes ou installer des outils qui nécessitent plus de privilèges que ceux de l'utilisateur actuel, vous pouvez utiliser sudo sans avoir à fournir de mot de passe. Pour plus d’informations, consultez le manuel sudo.
Les machines virtuelles Windows sont configurées pour s'exécuter en tant qu'administrateurs avec le Contrôle de compte d'utilisateur (UAC) désactivé. Pour plus d’informations, consultez « Fonctionnement du contrôle de compte d’utilisateur » dans la documentation Windows.
Adresses IP
Pour obtenir la liste des plages d’adresses IP que GitHub Actions utilise pour les runners hébergés par GitHub, vous pouvez utiliser l’API REST GitHub. Pour plus d’informations, consultez la clé actions dans la réponse du point de terminaison GET /meta. Pour plus d’informations, consultez « Points de terminaison d’API REST pour les métadonnées ».
Les exécuteurs Windows et Ubuntu sont hébergés dans Azure et ont par la suite les mêmes plages d'adresses IP que les centres de données Azure. Les runners macOS sont hébergés dans le cloud macOS propre à GitHub.
Étant donné qu’il existe autant de plages d’adresses IP pour les exécuteurs hébergés sur GitHub, nous vous déconseillons de les utiliser comme listes d’autorisation pour vos ressources internes. Au lieu de cela, nous vous recommandons d’utiliser exécuteur plus grands avec une plage d’adresses IP statique ou des exécuteurs auto-hébergés. Pour plus d’informations, consultez « Utilisation des exécuteurs plus grands » ou « Exécuteurs auto-hébergés ».
La liste des GitHub Actions adresses IP retournées par l’API est mise à jour une fois par semaine.
Exigences de communication pour les runners hébergés sur GitHub
Un exécuteur de tâches hébergé sur GitHub doit établir des connexions avec des points de terminaison appartenant à GitHub afin d’assurer des opérations de communication essentielles. En outre, votre exécuteur peut nécessiter l’accès à des réseaux supplémentaires que vous avez spécifiés ou utilisés dans une action.
Pour assurer le bon fonctionnement des communications des agents d’exécution GitHub hébergés entre les réseaux de votre configuration, assurez-vous d’autoriser les communications suivantes.
Remarque
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.
Remarque
Si vous utilisez GitHub Enterprise Cloud avec résidence des données, vos runners doivent communiquer avec des noms d’hôte supplémentaires, en plus de ceux indiqués ci-dessous. Pour connaître la configuration réseau requise, consultez Détails réseau pour GHE.com.
Requis pour les opérations essentielles :
github.com api.github.com *.actions.githubusercontent.com
github.com
api.github.com
*.actions.githubusercontent.com
Requis pour télécharger les actions :
codeload.github.com
codeload.github.com
Requis pour charger/télécharger des résumés de projets, des journaux d'activité, des artefacts de workflow et des caches :
results-receiver.actions.githubusercontent.com *.blob.core.windows.net
results-receiver.actions.githubusercontent.com
*.blob.core.windows.net
Nécessaire pour les mises à jour de version de l’agent d’exécution :
objects.githubusercontent.com objects-origin.githubusercontent.com github-releases.githubusercontent.com github-registry-files.githubusercontent.com
objects.githubusercontent.com
objects-origin.githubusercontent.com
github-releases.githubusercontent.com
github-registry-files.githubusercontent.com
Requis pour récupérer les jetons OIDC :
*.actions.githubusercontent.com
*.actions.githubusercontent.com
Nécessaire pour télécharger ou publier des packages ou des conteneurs sur GitHub packages :
*.pkg.github.com pkg-containers.githubusercontent.com ghcr.io
*.pkg.github.com
pkg-containers.githubusercontent.com
ghcr.io
Nécessaire pour Stockage des fichiers volumineux Git
github-cloud.githubusercontent.com github-cloud.s3.amazonaws.com
github-cloud.githubusercontent.com
github-cloud.s3.amazonaws.com
Requis pour les tâches de Dependabot updates
dependabot-actions.githubapp.com
dependabot-actions.githubapp.com
Nécessaire pour télécharger les fichiers de la version :
release-assets.githubusercontent.com
release-assets.githubusercontent.com
Nécessaire pour le réseau virtuel :
api.snapcraft.io
api.snapcraft.io
Systèmes de fichiers
GitHub exécute des actions et des commandes shell dans des répertoires spécifiques sur la machine virtuelle. Les chemins des fichiers sur les machines virtuelles ne sont pas statiques. Utilisez les variables d’environnement fournies par GitHub pour créer des chemins de fichiers pour les répertoires home, workspace et workflow.
| Répertoire | Variable d'environnement | Description |
|---|---|---|
home | HOME | Contient des données associées aux utilisateurs. Par exemple, ce répertoire peut contenir des informations d'identification provenant d'une tentative de connexion. |
workspace | GITHUB_WORKSPACE | Les actions et les commandes Shell s'exécutent dans ce répertoire. Une action peut modifier le contenu de ce répertoire, auquel les actions suivantes peuvent accéder. |
workflow/ | GITHUB_EVENT_PATH | Charge utile POST de l’événement de webhook qui a déclenché le workflow. |
| GitHub réécrit cette opération chaque fois qu’une action s’exécute pour isoler le contenu de fichier entre les actions. |
Pour obtenir la liste des variables GitHub d’environnement créées pour chaque flux de travail, consultez Stocker des informations dans des variables.
Système de fichiers de conteneur Docker
Les actions qui s'exécutent dans des conteneurs Docker ont des répertoires statiques sous le chemin /github. Toutefois, nous vous recommandons vivement d'utiliser les variables d'environnement par défaut pour construire des chemins de fichiers dans des conteneurs Docker.
GitHub réserve le préfixe de chemin d’accès /github et crée trois répertoires pour les actions.
/github/home/github/workspace- Remarque : GitHub Actions doit être exécuté par l’utilisateur Docker par défaut (racine). Vérifiez que votre Dockerfile ne définit pas l’instructionUSER, sinon vous ne pourrez pas accéder àGITHUB_WORKSPACE./github/workflow