Explorer les coureurs
Les exécuteurs GitHub sont les environnements de calcul qui exécutent vos workflows GitHub Actions. Comprendre les "runners" est crucial pour optimiser les performances, gérer les coûts et garantir la sécurité dans vos pipelines CI/CD.
Vue d’ensemble des types de runners
GitHub fournit deux options d’exécuteur distinctes, chacune adaptée à différents scénarios :
Exécuteurs hébergés par GitHub
- Géré par GitHub : entièrement géré et mis à jour par GitHub
- Mise à l’échelle à la demande : provisionnée automatiquement pour chaque travail
- Plusieurs environnements : Ubuntu, Windows et macOS disponibles
- Outils intégrés : préinstallé avec des outils de développement courants
- Facturation basée sur l’utilisation : payer uniquement pour ce que vous utilisez
Exécuteurs auto-hébergés
- Géré par vous : contrôle total sur l’environnement et la configuration
- Environnements personnalisés : installer une configuration logicielle ou matérielle nécessaire
- Infrastructure privée : s’exécute sur vos propres machines ou instances cloud
- Aucune limite de temps : les travaux peuvent s’exécuter aussi longtemps que nécessaire
- Coûts fixes : aucun frais par minute après l’installation
Considérations relatives à la sécurité
Important
N’utilisez jamais d’agents auto-hébergés avec des dépôts publics. Cela crée une vulnérabilité de sécurité grave permettant à des acteurs malveillants d'exécuter du code arbitraire sur l'infrastructure via des pull requests.
Modèles d’utilisation sécurisés :
- Utiliser des exécuteurs auto-hébergés uniquement avec des référentiels privés
- Implémenter une isolation et une surveillance réseau appropriées
- Mettre régulièrement à jour les logiciels et dépendances de l'agent d'exécution
- Utiliser des machines dédiées qui ne contiennent pas de données sensibles
Exécuteurs hébergés par GitHub
Les exécuteurs hébergés par GitHub fournissent une solution de maintenance zéro pour l’exécution de vos flux de travail. GitHub gère toutes les gestions de l’infrastructure, ce qui vous permet de vous concentrer sur votre code plutôt que sur l’administration du serveur.
Environnements disponibles
GitHub propose plusieurs types d’exécuteurs avec différentes spécifications :
| Type d’exécuteur | Version du système d'exploitation | Processeur | RAM | Storage |
|---|---|---|---|---|
ubuntu-latest |
Ubuntu 22.04 | Processeur à 4 cœurs | 16 Go | SSD de 14 Go |
windows-latest |
Windows Server 2022 | Processeur à 4 cœurs | 16 Go | SSD de 14 Go |
macos-latest |
macOS 14 | Processeur à 4 cœurs | 14 Go | SSD de 14 Go |
macos-13 |
macOS 13 | Processeur à 4 cœurs | 14 Go | SSD de 14 Go |
Logiciel préinstallé
Chaque agent est fourni avec un ensemble complet et intégré d’outils de développement :
Outils courants sur toutes les plateformes :
- Git, Docker, Node.js, Python, Java, .NET
- Gestionnaires de packages (npm, pip, Maven, NuGet)
- Créer des outils et des compilateurs
- Frameworks de test
Outils spécifiques à la plateforme :
-
Ubuntu :
apt, ,snapdivers utilitaires Linux - Windows : PowerShell, Visual Studio Build Tools, Kit de développement logiciel (SDK) Windows
- macOS : Xcode, Homebrew, CocoaPods
Conseil / Astuce
Vérifiez l’inventaire logiciel complet dans le référentiel d’images de l’exécuteur ou affichez la section « Configurer la tâche » dans vos journaux de workflow.
Limites et considérations relatives à l’utilisation
La compréhension de ces limites vous aide à planifier efficacement vos flux de travail :
- Délai d’expiration du travail : 6 heures maximum par travail
- Délai d’expiration du flux de travail : 35 jours maximum (y compris le temps d’attente)
- Travaux simultanés : varie selon le plan GitHub (20 gratuitement, 180 pour Pro)
- Stockage : stockage d’artefacts de 500 Mo par tâche
Conditions préalables
Avant d’utiliser des exécuteurs hébergés par GitHub, les utilisateurs doivent disposer d’un dépôt GitHub où ils peuvent définir des flux de travail à l’aide de GitHub Actions. Les runners sont disponibles pour tous les utilisateurs de GitHub ayant accès à GitHub Actions.
Configuration
Contrairement aux exécuteurs auto-hébergés, les exécuteurs hébergés par GitHub sont configurés automatiquement dans le cadre d’une exécution de workflow individuelle. Les utilisateurs définissent des flux de travail en tant que fichiers au format YAML stockés dans le répertoire .github/workflows dans les référentiels GitHub. Dans la configuration du flux de travail, les utilisateurs spécifient l’environnement d’exécuteur souhaité, y compris le système d’exploitation et les dépendances logicielles. Les exécuteurs dont les spécifications correspondent sont mis en place à la demande chaque fois que le flux de travail est déclenché, à raison d'un exécuteur par travail. Les déclencheurs peuvent être manuels ou automatiques, en fonction d’événements tels que les envois de code, les demandes de tirage (pull request) ou les événements de répartition du référentiel.
Les exécuteurs hébergés par GitHub s’authentifient auprès de GitHub à l’aide de jetons ou d’identifiants fournis par GitHub Actions. Ils s’appuient sur la connectivité intégrée pour communiquer avec la plateforme GitHub et télécharger des artefacts de flux de travail.
Entretien
GitHub gère les mises à jour et la maintenance des exécuteurs hébergés par GitHub, ce qui garantit qu’ils restent up-to-date avec les dernières versions logicielles et correctifs de sécurité. Les outils logiciels inclus dans les exécuteurs sont mis à jour chaque semaine. Les activités des agents sont surveillées et journalisées, ce qui facilite le suivi des exécutions de flux de travail et la résolution des problèmes.
Licences et coûts
Les exécuteurs hébergés par GitHub sont inclus dans la tarification de GitHub Actions, avec une facturation basée sur l'utilisation pour les minutes de workflow au-delà du niveau gratuit. Les utilisateurs bénéficient de la mise à l’échelle automatisée et économique, car GitHub provisionne et désalloue automatiquement les exécuteurs en fonction de la demande.
Exécuteurs auto-hébergés
Les exécuteurs auto-hébergés vous permettent de contrôler complètement votre environnement d’exécution. Elles sont idéales lorsque vous avez besoin de matériel, de configurations logicielles spécifiques ou de réduire les coûts des flux de travail à volume élevé.
Quand utiliser des exécuteurs auto-hébergés
Parfait pour :
- Configuration matérielle requise spécifique : accélération GPU, mémoire élevée ou processeurs personnalisés
- Accès au réseau privé : Se connecter à des bases de données internes, des API ou des services
- Logiciel personnalisé : outils propriétaires préinstallés ou versions logicielles spécifiques
- Optimisation des coûts : flux de travail à volume élevé où la facturation par minute devient coûteuse
- Exigences de conformité : les données doivent rester au sein de votre infrastructure
Non recommandé pour :
- Dépôts publics (risque de sécurité)
- Flux de travail occasionnels ou à faible volume
- Teams sans expérience de gestion de l’infrastructure
Options de déploiement
Vous pouvez exécuter des exécuteurs auto-hébergés sur différentes plateformes :
- Serveurs physiques : matériel local
- Machines virtuelles : VMware, Hyper-V ou d’autres hyperviseurs
- Instances cloud : AWS EC2, machines virtuelles Azure, Moteur de calcul Google
- Conteneurs : Conteneurs Docker (avec limitations)
- Kubernetes : utilisation du contrôleur Actions Runner
Processus d’installation
La configuration d’un runner auto-hébergé implique les étapes clés suivantes :
- Téléchargez l'application runner depuis le dépôt de runners sur GitHub
- Configurer l’exécuteur avec des jetons d’authentification
- Installer en tant que service (recommandé en environnement de production)
- Configurer des étiquettes pour cibler des exécuteurs spécifiques dans les flux de travail
Configuration réseau requise :
- Accès HTTPS sortant (443) à GitHub.com
- Accès HTTPS sortant (443) à objects.githubusercontent.com
- Aucune connexion entrante requise
Domaines et gestion de l’exécuteur
Les agents hébergés localement peuvent être inscrits à différents niveaux de l'organisation :
| Scope | Niveau d’accès | Cas d’usage |
|---|---|---|
| Référentiel | Référentiel unique uniquement | Environnements de développement/test |
| Organisation | Tous les dépôts dans l’organisation | Ressources d’équipe partagées |
| Entreprise | Toutes les organisations d’entreprise | Gestion centralisée de l’infrastructure |
Ciblage des exécuteurs dans les flux de travail
Utilisez des étiquettes pour spécifier l’exécuteur qui doit exécuter votre travail :
jobs:
build:
runs-on: [self-hosted, linux, x64, gpu]
steps:
- name: Build with GPU acceleration
run: ./build-with-cuda.sh
Responsabilités de maintenance
En tant que propriétaire du runner, vous êtes responsable des éléments suivants :
- Mises à jour de sécurité : Maintenir l’application d’exécuteur et le système d’exploitation mis à jour
- Gestion des logiciels : installer et gérer les outils de développement requis
- Surveillance : suivre les métriques de santé et de performance du coureur
- Planification de la capacité : dimensionner les exécuteurs en fonction des demandes de flux de travaux
- Sauvegarde et récupération : vérifier que les configurations de l’exécuteur sont sauvegardées
Considérations relatives aux coûts
Bien que les exécuteurs auto-hébergés n’entraînent pas de frais de minutes GitHub Actions, tenez compte des coûts suivants :
- Infrastructure : serveurs, instances cloud ou orchestration de conteneurs
- Maintenance : temps consacré aux mises à jour, à la surveillance et à la résolution des problèmes
- Sécurité : outils et processus supplémentaires pour la gestion sécurisée des exécuteurs
- Alimentation et refroidissement : pour les déploiements locaux
Conseils d’optimisation des coûts :
- Utiliser la mise à l’échelle automatique pour les exécuteurs basés sur le cloud
- Implémenter le pooling d’agents pour plusieurs dépôts
- Planifier l’arrêt des coureurs pendant les heures creuses
- Surveiller l’utilisation des ressources pour dimensionner correctement les instances