
GitHub Actions ou GitLab CI : le runner change plus que le prix par siège

Pour choisir entre GitHub Actions et GitLab CI, le prix par utilisateur ne suffit pas : le résultat dépend du temps exécuté sur chaque type de runner, du quota inclus et des fonctions de sécurité requises. Sur un dépôt privé, les conditions de facturation de GitHub Actions accordent 2 000 minutes mensuelles à GitHub Free pour les runners hébergés standard ; au-delà, les tarifs sont de 0,006 $ par minute sur Linux x64 à deux cœurs, 0,010 $ sur Windows x64 à deux cœurs et 0,062 $ sur macOS. L’exécution sur un runner autogéré ne génère pas de frais de minutes Actions.
La grille GitLab.com prévoit 400 minutes de calcul par mois pour Free et 10 000 pour Premium, proposé à 29 $ par utilisateur et par mois avec facturation annuelle. Un bloc supplémentaire de 1 000 minutes coûte 10 $ ; Free comprend aussi 10 Gio de stockage ajustable et le test statique de sécurité des applications. Un petit pipeline Linux privé peut donc éviter tout supplément de calcul sur GitHub Free et dépasser le quota GitLab Free. À l’inverse, une charge plus importante peut tenir dans Premium, à condition d’intégrer son abonnement au calcul.
Ce que mesure une minute sur chaque plateforme
La durée totale d’un pipeline ne donne pas sa consommation de calcul. Si plusieurs tâches tournent en parallèle, chacune occupe son propre runner ; il faut additionner leurs durées, même si le pipeline se termine plus tôt que cette somme. Les exemples ci-dessous supposent des dépôts privés, des tâches durant exactement le temps indiqué et un stockage restant dans les allocations incluses. Ces durées sont des hypothèses de calcul, pas des mesures de performance des plateformes.
Chez GitLab.com, la méthode de calcul des minutes multiplie la durée de chaque tâche hébergée par un coefficient : 1 pour le petit runner Linux x86-64, 1 pour le runner Windows medium en bêta et 6 pour le runner macOS M1 medium en bêta. Il s’agit de minutes déduites du quota, et non de dollars facturés par minute. Chez GitHub, une fois l’allocation épuisée, le tarif du runner utilisé détermine le coût du temps supplémentaire.
Petit projet Linux : le dépassement arrive plus tôt sur GitLab Free
Premier scénario hypothétique : un dépôt privé lance 100 pipelines mensuels, chacun avec une tâche Linux de 10 minutes. La charge atteint 1 000 minutes sur un runner standard. Elle reste dans l’allocation GitHub Free, d’où un supplément de calcul de 0 $. Sur GitLab.com Free, elle dépasse le quota de 600 minutes : il faut acheter un bloc supplémentaire de 1 000 minutes pour 10 $ afin de couvrir cette charge sur les runners hébergés.
Ces montants concernent le calcul hébergé, pas la facture complète d’une équipe. Ils supposent qu’aucun autre projet ne consomme le quota du même compte ou groupe et que la tâche dure autant sur les machines retenues. Si plusieurs dépôts partagent l’allocation, leur consommation s’additionne avant que le supplément de ce projet puisse être isolé. Le cas d’un dépôt public mérite aussi un calcul distinct : les runners GitHub hébergés standard y sont gratuits, tandis que les règles de quota GitLab dépendent notamment du type de projet.
Tests multiplateformes : calculer la facture et vérifier l’accès à macOS
Deuxième scénario hypothétique, avec un ordre d’exécution fixé : un premier lot consomme 2 000 minutes Linux, puis 100 pipelines exécutent chacun une tâche de 10 minutes sur Linux, une sur Windows et une sur macOS. Le premier lot épuise l’allocation GitHub Free. Les tâches suivantes représentent 1 000 minutes par système : leur supplément de calcul est de 6 $ sur Linux, 10 $ sur Windows et 62 $ sur macOS, soit 78 $ au total.
Pour la même charge sur GitLab.com, les 3 000 minutes réelles de Linux consomment 3 000 minutes de quota, les 1 000 minutes Windows en consomment 1 000 et les 1 000 minutes macOS M1 en consomment 6 000. Le total atteint exactement les 10 000 minutes de Premium : aucun bloc supplémentaire n’est nécessaire, mais l’abonnement reste dû. Pour deux utilisateurs, son prix affiché représente 58 $ par mois avec engagement annuel ; pour trois, 87 $. Le nombre de sièges peut ainsi inverser la comparaison avec les 78 $ de calcul supplémentaire de GitHub Free.
Cette possibilité dépend aussi de l’accès aux machines. Les runners macOS hébergés de GitLab sont en bêta et accessibles aux clients Premium et Ultimate ainsi qu’à certains programmes open source. Un groupe GitLab Free ordinaire ne peut pas reprendre ce scénario sur ces runners. Les durées identiques restent une hypothèse : aucune des sommes calculées ne permet de conclure qu’une compilation s’exécutera aussi vite sur les deux services.
Runner autogéré : la minute disparaît de la facture, pas de l’exploitation
Troisième scénario hypothétique : 10 000 minutes Linux mensuelles sont exécutées sur une machine exploitée par l’équipe. Pour ces tâches, le supplément de minutes Actions est de 0 $ et les runners propres à un groupe ou à un projet GitLab.com ne puisent pas dans le quota des runners hébergés. Si toute la charge passait plutôt sur des runners Linux hébergés, GitHub Free facturerait 8 000 minutes au-delà de son allocation, soit 48 $. GitLab.com Free nécessiterait dix blocs supplémentaires pour couvrir les 9 600 minutes au-delà de son quota, soit 100 $ à l’achat.
La machine autogérée a toutefois un coût qui n’apparaît pas dans ces lignes de facturation : location ou matériel, énergie, mises à jour, images d’exécution et temps consacré aux incidents. Une seule machine peut également mettre les tâches en attente lorsqu’elles arrivent simultanément. Les 48 $ et 100 $ du scénario sont donc des montants auxquels comparer ce coût d’exploitation pour cette charge précise, sans constituer un prix universel du runner autogéré. Un autre volume, un autre forfait ou une capacité parallèle différente déplaceraient le résultat.
Stockage et sécurité : deux coûts distincts des runners
Les trois scénarios supposent que les artefacts et les autres données restent sous les allocations incluses. Sur GitHub, le stockage des artefacts partage son allocation avec GitHub Packages ; l’occupation supplémentaire s’accumule au fil des heures. Sur GitLab.com, le stockage ajustable couvre des usages différents, notamment les dépôts et les artefacts. Une équipe qui conserve longtemps des fichiers de compilation volumineux doit donc chiffrer leur volume et leur durée de conservation séparément des minutes de calcul. Réduire le temps d’un pipeline ne réduit pas nécessairement le stockage qu’il laisse derrière lui.
Les fonctions DevSecOps modifient elles aussi le coût du choix. GitLab inclut le test statique dès Free, tandis que sa gestion des vulnérabilités et sa sécurité de la chaîne d’approvisionnement figurent dans Ultimate. Sur GitHub, les conditions de GitHub Advanced Security rendent notamment l’analyse de code, la recherche de secrets et l’examen des dépendances gratuits pour les dépôts publics ; l’usage des fonctions avancées sur des dépôts privés exige une licence adaptée. Cette dépense peut dépendre des contributeurs actifs aux dépôts concernés, indépendamment du nombre de minutes Actions. Le besoin de sécurité doit ainsi être comparé fonction par fonction, avec le coût des sièges et celui des runners, avant de retenir une plateforme.
À lire aussi :
Articles similaires


CodeQL 2.27.0 passe à ARM64, tandis que Java 9 et 10 approchent de la fin

Chrome corrige CVE-2026-85046 : l’exploitation avait déjà commencé

GitLab : la faille critique peut lire des secrets sans authentification

Otter.ai ou Fireflies.ai : 300 minutes face à la transcription illimitée

GitHub Enterprise Server 3.22 ouvre Copilot CLI aux réseaux isolés
Abonnez-vous à notre newsletter
Recevez directement les dernières actualités sur le Web3, l’IA et les cryptomonnaies.