Explorer les coureurs

Effectué

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 :

  1. Téléchargez l'application runner depuis le dépôt de runners sur GitHub
  2. Configurer l’exécuteur avec des jetons d’authentification
  3. Installer en tant que service (recommandé en environnement de production)
  4. 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