Back to Blog
githubdeveloper-toolsautomationnews

GitHub Actions et Codespaces : Pourquoi les mises à jour de 2025 sont indispensables pour les développeurs

Explorez les mises à jour transformatrices de 2025 pour GitHub Actions et Codespaces. Découvrez les ancres YAML, la sécurité OIDC, les pré-constructions et l'intégration de l'IA. Ne manquez pas ces changements essentiels !

DataFormatHub Team
December 20, 202510 min read
Share:
GitHub Actions et Codespaces : Pourquoi les mises à jour de 2025 sont indispensables pour les développeurs

L'écosystème d'intégration et de développement continus est une bête implacable, en constante évolution, et honnêtement, il est passionnant de suivre le rythme. En tant que développeur qui vit pratiquement dans l'écosystème GitHub, j'ai travaillé avec la dernière suite d'améliorations apportées à GitHub Actions et Codespaces, et laissez-moi vous dire que certaines de ces mises à jour sont véritablement transformatrices, tandis que d'autres... eh bien, elles trouvent encore leur place.

Il est clair que GitHub s'efforce de consolider sa position de la plateforme pour l'expérience développeur, de la validation du code au déploiement dans le cloud. Ce qui est particulièrement frappant, c'est le travail de fond qu'ils ont accompli, en plus des nouvelles fonctionnalités attrayantes. Plongeons dans ce qui mijotait fin 2024 et tout au long de 2025.

GitHub Actions : Le moteur est turbocompressé

Tout d'abord, reconnaissons l'éléphant dans la pièce : l'échelle pure à laquelle GitHub Actions opère. Nous parlons d'une plateforme qui, fin 2025, traitait un nombre stupéfiant de 71 millions de tâches par jour. Une telle charge nécessite une ingénierie sérieuse, et GitHub a répondu en entreprenant une réarchitecture substantielle de ses services backend principaux début 2024. Ce n'est pas une fonctionnalité que vous voyez directement, mais c'est le socle sur lequel reposent toutes ces autres améliorations, promettant une meilleure fiabilité, des performances et une évolutivité accrues. C'est le genre de travail solide et discret qui rend tout le reste plus robuste.

Flexibilité et maintenabilité des workflows : Fin des maux de tête YAML (la plupart du temps)

J'attendais ça : les ancres YAML. Si vous avez déjà lutté avec des workflows GitHub Actions tentaculaires et répétitifs, en particulier dans les monorepos ou les projets avec des étapes CI/CD standardisées, vous connaissez la douleur. Les configurations dupliquées pour différentes tâches ou étapes sont un cauchemar de maintenance. L'introduction des ancres YAML est une solution pratique et efficace à ce problème. Elle vous permet de définir un bloc YAML une seule fois et de le référencer dans tout votre workflow, réduisant ainsi considérablement le code redondant et améliorant la lisibilité.

Voici un aperçu rapide de la façon dont cela simplifie les choses :

# .github/workflows/my-ci.yaml
name: CI with Anchors

on: [push, pull_request]

jobs:
  # Define a reusable step group using an anchor
  .setup_node_steps: &setup_node
    - name: Checkout repository
      uses: actions/checkout@v4
    - name: Set up Node.js
      uses: actions/setup-node@v4
      with:
        node-version: '20'
        cache: 'npm'
    - name: Install dependencies
      run: npm ci

  build_frontend:
    runs-on: ubuntu-latest
    steps:
      - *setup_node # Reference the anchor here
      - name: Build frontend
        run: npm run build:frontend

  test_backend:
    runs-on: ubuntu-latest
    steps:
      - *setup_node # And here!
      - name: Run backend tests
        run: npm test --workspace=backend

C'est vraiment impressionnant car cela s'attaque à une frustration de longue date pour tous ceux qui gèrent des pipelines complexes. Ce n'est pas révolutionnaire, mais c'est une amélioration massive de la qualité de vie.

En complément de cela, GitHub a considérablement amélioré les workflows réutilisables. Les limites ont été augmentées de 4 à 10 niveaux d'imbrication et de 20 à 50 appels de workflow par exécution. Pour les grandes organisations ou les projets qui s'efforcent de créer des pipelines véritablement modulaires et DRY (Don't Repeat Yourself), c'est une aubaine. Vous pouvez désormais créer des abstractions plus sophistiquées et à plusieurs niveaux, où un workflow de déploiement de haut niveau peut invoquer plusieurs sous-workflows spécialisés, chacun pouvant potentiellement en appeler d'autres. Ceci est essentiel pour l'automatisation à grande échelle et le maintien de la cohérence entre divers services ou composants.

Et en parlant de flexibilité, le nombre d'entrées pour workflow_dispatch a été augmenté de 10 à 25. Cela peut sembler mineur, mais pour l'automatisation en libre-service – pensez aux déploiements paramétrés ou aux exécutions de tests configurables déclenchées manuellement – cela signifie que vous pouvez exposer un ensemble d'options beaucoup plus riche aux utilisateurs, rendant vos workflows plus polyvalents sans avoir recours à des solutions de contournement maladroites.

Sécurité et auditabilité : OIDC devient granulaire

La sécurité reste une préoccupation primordiale, et l'intégration de GitHub Actions avec OpenID Connect (OIDC) a été un tournant pour les déploiements cloud sécurisés, éliminant le besoin d'informations d'identification cloud à longue durée de vie. L'ajout récent de nouvelles revendications de jeton OIDC, en particulier check_run_id, est là où les choses deviennent vraiment intéressantes pour les équipes de sécurité et de conformité.

Auparavant, bien que vous puissiez corréler un jeton OIDC à une exécution de workflow (run_id), il était plus difficile de déterminer exactement la tâche ou l'instance de calcul qui l'a généré pour une étape spécifique. Avec check_run_id en plus de run_id et run_attempt, vous obtenez un contrôle d'accès basé sur les attributs précis et une auditabilité améliorée. Cela signifie que vous pouvez créer des politiques IAM dans votre fournisseur cloud (AWS, Azure, GCP) qui ne disent pas seulement "autoriser le workflow de ce dépôt à se déployer", mais plutôt "autoriser cette tâche spécifique dans cette exécution de workflow à accéder à cette ressource spécifique".

Considérez un scénario où vous avez un workflow avec plusieurs tâches : build, test, deploy-staging, deploy-production. Vous voulez vous assurer que seule la tâche deploy-production peut assumer un rôle avec des autorisations de déploiement en production. Avec la nouvelle revendication check_run_id, votre politique de confiance dans AWS IAM, par exemple, peut désormais être incroyablement précise :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::<AWS_ACCOUNT_ID>:oidc-provider/token.actions.githubusercontent.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "token.actions.githubusercontent.com:aud": "aws.workload.identity",
          "token.actions.githubusercontent.com:sub": "repo:my-org/my-repo:environment:production:ref:refs/heads/main"
        },
        "StringLike": {
          "token.actions.githubusercontent.com:job_workflow_ref": "my-org/my-repo/.github/workflows/deploy.yml@refs/heads/main",
          "token.actions.githubusercontent.com:check_run_id": "*"
        }
      }
    }
  ]
}

Remarque : Il s'agit d'un exemple conceptuel. check_run_id serait utilisé dans une condition StringEquals supplémentaire pour faire correspondre l'ID d'une tâche spécifique, ou combiné à d'autres revendications pour des règles plus complexes.

Le check_run_id permet aux équipes de plateforme de corréler un jeton OIDC spécifique à la tâche et au calcul exacts qui ont exécuté la demande. Ceci est essentiel pour répondre aux exigences de conformité, améliorer la traçabilité et révoquer rapidement l'accès si une tâche spécifique est compromise, plutôt que de devoir invalider les informations d'identification pour une exécution de workflow entière. C'est un pas en avant vers des déploiements à confiance zéro.

Évolution des runners et performances

GitHub a continué sa progression constante des améliorations des runners. Nous avons vu la migration très attendue de ubuntu-latest vers ubuntu-24 entre décembre 2024 et janvier 2025, ainsi que la suppression de ubuntu-20 d'ici avril 2025. Bien qu'il s'agisse d'une évolution nécessaire, il est important de faire preuve de réalisme : ces mises à jour d'image peuvent et vont casser les workflows si vous vous appuyez sur des versions de packages ou des outils spécifiques qui ont pu changer ou être supprimés dans les nouvelles images. Épinglez toujours votre runs-on à une version spécifique (ubuntu-22.04 ou ubuntu-24.04) et testez soigneusement.

Sur le front des performances, les runners hébergés ARM64 pour les dépôts publics et les images macOS 15 et Windows 2025 sont désormais généralement disponibles. Les runners macOS M2, en particulier, offrent des performances améliorées et une accélération GPU, ce qui est fantastique pour le développement mobile, le développement de jeux ou tout workflow bénéficiant d'Apple Silicon. Ce sont des améliorations solides et pratiques qui ont un impact direct sur les temps de construction et la productivité des développeurs.

L'éléphant dans la pièce : les prix des Actions

Maintenant, pour la partie moins enthousiaste : les modifications des prix de GitHub Actions. C'est un sujet brûlant, et à juste titre. GitHub a annoncé une réduction des prix des runners hébergés par GitHub (jusqu'à 39 % à partir du 1er janvier 2026), ce qui est une bonne nouvelle pour beaucoup. Cependant, ils ont également introduit une nouvelle charge de plateforme cloud de 0,002 $ par minute pour l'utilisation de runners auto-hébergés dans les dépôts privés, initialement prévue pour le 1er mars 2026.

Cette décision a suscité de vives réactions de la communauté. Pendant des années, l'un des principaux attraits des runners auto-hébergés était de tirer parti du plan de contrôle de GitHub pour l'orchestration sans payer les minutes d'exécution, ce qui le rendait très rentable pour les grandes entreprises disposant de leur propre infrastructure informatique. Ces nouveaux frais monétisent directement ce plan de contrôle, modifiant fondamentalement l'équation des coûts pour de nombreuses organisations.

À leur crédit, GitHub a écouté. À partir du 15 décembre 2025, ils ont reporté le changement de facturation des runners auto-hébergés pour réévaluer leur approche, reconnaissant qu'ils ont "manqué le but" en matière de commentaires de la communauté. C'est un contrôle de réalité crucial. Bien que les réductions de prix des runners hébergés soient appréciées, la tentative de monétiser l'orchestration des runners auto-hébergés met en évidence la tension entre la fourniture d'une plateforme gratuite et robuste et la garantie d'une croissance durable. C'est un rappel que même les outils les plus appréciés fonctionnent selon des réalités économiques. Pour l'instant, la taxe sur les runners auto-hébergés est suspendue, mais la conversation n'est pas terminée.

GitHub Codespaces : Les environnements de développement natifs du cloud arrivent à maturité

GitHub Codespaces a mûri régulièrement, tenant véritablement la promesse d'environnements de développement cloud instantanés et reproductibles. Pour moi, la proposition de valeur fondamentale reste la même : intégrer de nouveaux membres d'équipe en quelques minutes, pas en quelques jours, et des environnements cohérents pour chaque développeur.

Le paradigme Dev Container : une base solide

La base de Codespaces est bien sûr la spécification Dev Container (devcontainer.json). Cette approche du code en tant que configuration vous permet de définir tout ce dont votre environnement de développement a besoin : image de base, outils, versions d'exécution, extensions VS Code, transfert de port et commandes post-création. Il ne s'agit pas seulement de commodité ; il s'agit d'éliminer le syndrome "ça marche sur ma machine" et de garantir que chaque développeur, qu'il soit local ou dans le cloud, travaille avec la même chaîne d'outils.

Les fonctionnalités personnalisées de Dev Container vous permettent de modulariser et de partager des configurations d'environnement courantes, ce qui est incroyablement puissant pour les projets complexes ou les équipes qui maintiennent plusieurs services.

Accélération de l'intégration avec les pré-constructions

Pour les dépôts plus volumineux ou les projets avec des dépendances lourdes, le temps de création initial de Codespace pouvait parfois encore être un frein. C'est là que les pré-constructions Codespaces brillent. Une pré-construction pré-assemble essentiellement les principaux composants d'un Codespace (code source, dépendances, extensions, configurations) pour un dépôt, une branche et un devcontainer.json donnés. Lorsqu'un développeur lance ensuite un Codespace, il est extrait de ce modèle "prêt à l'emploi", ce qui réduit considérablement le temps de création.

Les optimisations récentes signifient que même si le workflow de pré-construction le plus récent pour une branche peut échouer, une pré-construction active sera toujours disponible. C'est une amélioration solide qui garantit que les petits ratés dans le processus de pré-construction ne bloquent pas complètement les développeurs pour obtenir un environnement instantané. J'ai vu cela économiser d'innombrables heures, en particulier dans les projets avec de grands node_modules ou des constructions d'images Docker complexes. Cela transforme véritablement l'expérience d'intégration d'une corvée en une réalité du type "cliquez et codez".

Développement natif de l'IA : Copilot et les modèles GitHub

GitHub Universe 2024 (octobre 2024) a mis en évidence une forte poussée vers les expériences de développement natif de l'IA au sein de Codespaces. L'intégration plus approfondie de GitHub Copilot inclut désormais la prise en charge multi-modèle (Anthropic's Claude 3.5 Sonnet, Google's Gemini 1.5 Pro et OpenAI's GPT-4o). Cela signifie que les développeurs peuvent choisir le meilleur modèle d'IA pour leur tâche de codage spécifique directement dans Copilot Chat dans Codespaces.

Encore plus intéressant est GitHub Models, désormais en aperçu public. Ce terrain de jeu interactif de modèles permet aux développeurs et aux ingénieurs en IA d'expérimenter, de comparer et de créer avec divers modèles d'IA directement dans leur environnement Codespaces. Il comprend la prise en charge du SDK, permettant une boucle de rétroaction plus étroite pour le développement de fonctionnalités alimentées par l'IA ou même d'agents d'IA. C'est à ce moment-là que Codespaces commence à ressembler moins à un simple IDE dans le cloud et plus à une plateforme de développement holistique pour l'ère de l'IA. Vous pouvez lancer un Codespace, importer un environnement d'IA préconfiguré et commencer immédiatement à itérer sur les invites ou les intégrations de modèles sans friction de configuration locale.

Au-delà de VS Code : élargissement des horizons

Bien que VS Code reste le client phare, GitHub a étendu la prise en charge de Codespaces pour inclure JetBrains IDEs et JupyterLab en version bêta. C'est une décision intelligente, reconnaissant que les développeurs ont des préférences diverses. Donner aux utilisateurs le choix de connecter leur IDE familier à un environnement cloud puissant élargit considérablement l'attrait et l'utilité de Codespaces.

Coût et sécurité : avantages pratiques

Pour les développeurs individuels, le niveau gratuit pour les comptes personnels (120 heures de cœur et 15 Go de stockage par mois) fait de Codespaces un outil incroyablement accessible pour les projets personnels ou l'exploration de nouvelles technologies.

Du point de vue de la sécurité, Codespaces offre une isolation robuste. Chaque Codespace est un environnement distinct et éphémère. Cela réduit considérablement le risque de la chaîne d'approvisionnement ; si vous expérimentez avec une bibliothèque non fiable ou un projet open source, vous pouvez le lancer dans un Codespace isolé sans exposer votre machine locale ou d'autres projets à des vulnérabilités potentielles. C'est une limite de sécurité pratique qu'il est difficile de réaliser avec le développement local.

La voie à suivre : mon avis

Les développements récents dans GitHub Actions et Codespaces dressent le portrait d'une plateforme qui s'efforce à la fois d'une infrastructure robuste et d'une expérience développeur raffinée. La reconstruction de l'architecture principale pour Actions et les améliorations continues apportées aux pré-constructions Codespaces témoignent d'un engagement envers les performances et la fiabilité, qui sont des éléments non négociables pour les utilisateurs à volume élevé.

La flexibilité du workflow offerte par les ancres YAML et les workflows réutilisables améliorés est un gain pratique en termes de maintenabilité et d'évolutivité. Les revendications OIDC granulaires sont une véritable mise à niveau de la sécurité, donnant aux équipes de plateforme les outils dont elles ont besoin pour des déploiements à confiance zéro sophistiqués. Je suis impatient de voir comment les équipes tireront parti de check_run_id pour des contrôles d'accès véritablement robustes.

Cependant, les récentes modifications de prix pour les runners Actions auto-hébergés, même avec le report, mettent en évidence le défi permanent de l'équilibre entre les coûts de la plateforme et les attentes des utilisateurs. La réponse rapide de GitHub aux commentaires de la communauté est un signe positif, mais elle souligne la nécessité d'une communication transparente et d'une considération attentive de la façon dont de tels changements ont un impact sur des bases d'utilisateurs diverses.

Codespaces, avec son écosystème Dev Container en évolution, ses pré-constructions et ses capacités d'IA en intégration rapide, devient un outil indispensable pour le prototypage rapide, l'intégration transparente et le développement collaboratif. La possibilité de lancer rapidement un environnement prêt pour l'IA et d'expérimenter avec différents modèles est particulièrement convaincante pour le rythme accéléré du développement de l'IA.

Dans l'ensemble, GitHub continue de repousser les limites. Bien qu'il y ait toujours des aspérités et des domaines à améliorer (j'aimerais voir un contrôle encore plus granulaire de la gestion du cycle de vie de Codespaces et peut-être des décomptes de coûts plus transparents pour les scénarios complexes), la trajectoire générale est celle d'une innovation puissante et centrée sur le développeur. C'est une période passionnante pour la construction sur GitHub, et j'ai hâte de voir ce qu'ils lanceront ensuite, en particulier la façon dont ils aborderont les prix des runners auto-hébergés d'une manière qui satisfait leurs utilisateurs d'entreprise.


Sources


🛠️ Outils connexes

Explorez ces outils DataFormatHub liés à ce sujet :


📚 Vous pourriez aussi aimer