Exécuteurs et ressources matérielles pris en charge
Les gammes d’exécuteurs hébergés par GitHub sont utilisables dans les dépôts publics et privés.
Pour les listes des coureurs disponibles, voir : * Exécuteurs standard pour les dépôts publics
Les exécuteurs Linux hébergés par GitHub prennent en charge l'accélération matérielle pour Android SDK Tools, ce qui accélère considérablement l'exécution des tests Android et réduit le nombre de minutes nécessaires. 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 images d’exécuteur -latest sont les dernières images stables que fournit GitHub et peuvent ne pas correspondre à la version la plus récente du système d’exploitation disponible auprès du fournisseur de 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.
Runners hébergés par GitHub standard pour 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 runners standard hébergés par GitHub est gratuite et illimitée pour 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 |
|
Les exécuteurs hébergés GitHub standard pour des dépôts privés
Pour les référentiels privés, les jobs utilisant les étiquettes de workflow indiquées dans le tableau ci-dessous s’exécutent sur des machines virtuelles dotées des spécifications associées. Ces runners utilisent le quota de minutes gratuites de votre compte GitHub, puis sont facturés selon un tarif à la 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 |
|
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.
Exécuteurs monoprocesseurs
Les exécuteurs monoprocesseurs hébergés par GitHub sont disponibles 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. Lorsque le travail commence, 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 agents à un seul processeur suivent le même modèle de concurrence que les autres agents 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
Les clients des plans GitHub Team et GitHub Enterprise Cloud peuvent choisir entre plusieurs machines virtuelles managées qui disposent de plus de ressources que les exécuteurs standard hébergés par GitHub. Ces machines sont appelées « exécuteurs plus grands ». Elles offrent les fonctionnalités avancées suivantes :
- Plus de RAM, d’UC et d’espace disque
- Adresses IP statiques
- Possibilité de regrouper les exécuteurs
- Mise à l’échelle automatique pour prendre en charge les flux de travail simultanés
- Exécuteurs alimentés par GPU
Ces exécuteurs plus grands sont hébergés par GitHub, et l’application exécuteur ainsi que d’autres outils y sont 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 utilisées par GitHub Actions pour les exécuteurs 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 exécuteurs macOS sont hébergés dans le propre cloud macOS de GitHub.
En raison du nombre élevé de plages d'adresses IP pour les exécuteurs hébergés par GitHub, nous vous déconseillons d'utiliser ces plages comme listes d'autorisation pour vos ressources internes. Nous vous recommandons plutôt d'utiliser des exécuteur plus grand avec une plage d'adresses IP statiques, ou des runners 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 données d'adresses IP GitHub Actions retournées par l'API est mise à jour une fois par semaine.
Exigences en matière de communication pour les coureurs hébergés par GitHub
Un agent exécuteur hébergé par GitHub doit établir des connexions avec des points de terminaison appartenant à GitHub pour effectuer 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 garantir des communications correctes pour les runners hébergés par GitHub entre les réseaux de votre configuration, assurez-vous que les communications suivantes sont autorisées.
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.
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
**Requis pour les mises à jour de la version de l'exécuteur :**
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 le téléchargement ou la publication de packages ou de conteneurs dans les packages GitHub :**
*.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
Nécessaire pour les travaux pour Dependabot updates
dependabot-actions.githubapp.com
dependabot-actions.githubapp.com
**Nécessaire pour télécharger les ressources 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 d'interpréteur de commandes 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 construire 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/event.json | 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 du fichier entre les actions. |
Pour obtenir la liste des variables d’environnement créées par GitHub pour chaque workflow, 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 du chemin /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’instruction `USER`, sinon vous ne pourrez pas accéder à `GITHUB_WORKSPACE`. /github/workflow