Aller au contenu
Nouveau cours : GitHub Actions

Nouveau cours : GitHub Actions

1 octobre 2026

Le chapitre Livrer accueille son deuxième cours : GitHub Actions. Après CI/CD : les principes, qui faisait construire un serveur d'intégration continue en Bash pour rendre chaque mécanisme visible, ce cours montre comment la plateforme la plus répandue réalise ces mêmes mécanismes, ce qu'elle ajoute, et ce qu'elle cache.

Douze leçons, un fil rouge

L'application Signalements, la petite API Flask et PostgreSQL des cours précédents, voit son workflow passer de six lignes de vérification à une chaîne complète : déclencheurs et concurrence maîtrisés, détection des changements, matrice d'intégration contre PostgreSQL 17 et 18, cache et artefacts, image multi-architecture construite sur des runners Arm natifs et publiée par empreinte, action composite et workflow réutilisable, déploiement GitOps en recette et en production, et durcissement complet.

En chemin, le cours montre ce que l'on rencontre réellement :

  • une étape reste verte alors que ses tests échouent, parce qu'aucun shell: n'a été écrit et que le shell par défaut n'active pas pipefail ;
  • la typographie française casse un fichier YAML : l'espace avant le deux-points transforme une commande en clé ;
  • une fonction de PostgreSQL 18 passe tous les tests sur le poste du développeur, et la matrice la fait échouer sur PostgreSQL 17 ;
  • l'image officielle postgres n'a pas de contrôle de santé, et le code du runner montre qu'il n'attend alors pas du tout la base ;
  • une commande sed des workflows de déploiement de Lyneko modifie la mauvaise clé tag: d'un fichier de valeurs, et la leçon 8 la remplace par une action JavaScript qui comprend le YAML ;
  • trois numéros de version d'une action compromise en 2025 désignent aujourd'hui le même commit : la meilleure démonstration qu'une étiquette ne prouve rien.

La moitié du cours parle de sécurité

Des compromissions d'Ultralytics (2024) et de tj-actions (2025) à celles de trivy-action et de TanStack (2026), les pipelines GitHub Actions sont devenus une cible de premier plan. Le cours en tire les leçons : permissions minimales, déclencheurs dangereux et pwn requests, injections, épinglage par empreinte et Dependabot avec délai de carence, empoisonnement de cache, audit avec zizmor. Il intègre les changements de 2026 : checkout v7 qui refuse le code des bifurcations dans les contextes privilégiés, le cache en lecture seule pour les déclencheurs à faible confiance, cache-mode, les règles d'exécution des workflows et la désactivation par défaut de pull_request_target sur les dépôts publics au 2 novembre.

Sans clé, même chez Scaleway

La leçon sur OIDC explique la fédération d'identité, qui remplace les clés de longue durée par l'identité du workflow chez AWS, Azure et Google Cloud. Scaleway ne la propose pas encore ; la leçon met donc en place, et teste avec des jetons de démonstration, un intermédiaire OpenBao qui délivre les secrets au seul job de production autorisé, pour dix minutes.

Honnête sur ses contraintes

Le cours analyse le workflow qui publie ce site, et dit ce que le plan gratuit de GitHub ne permet pas de protéger sur un dépôt privé, et comment Lyneko le compense. Tous les workflows sont validés avec actionlint et zizmor, toutes les commandes exécutables localement l'ont été, et les comportements propres à la plateforme sont décrits d'après la documentation et le code source de l'agent, sans journal de run inventé.

Le cours se termine par un lab, vérifié par un script, et un quiz. Prochaine étape du chapitre : GitOps avec Argo CD, là où le pipeline s'arrête.

Dernière modification