Anaïs Sparesotto
CI/CD · GitHub ActionsIntermédiaire≈ 2h15 · 7 chapitres

Tuto CI pour GitHub

Mettre en place une intégration continue sur GitHub Actions : workflows, jobs, cache, matrice, secrets, déploiement conditionnel. Tout ce qu'il faut pour sécuriser ton main.

À la fin du cours, tu sais

  • Écrire un workflow GitHub Actions propre et lisible
  • Mettre en place tests, lint, couverture en CI
  • Gérer secrets et permissions avec le principe du moindre privilège
  • Optimiser une CI lente (cache, parallélisme, concurrency)
  • Aller du CI au CD avec environments et déploiement conditionnel

Prérequis

  • Connaître Git et GitHub (pull requests, branches)
  • Avoir un projet avec des tests automatisés
  • Notions de YAML
Chapitre 11 / 10

Étape 1 sur 10 : Comprendre la CI et le modèle GitHub Actions

Chapitre 1

Comprendre la CI et le modèle GitHub Actions

L'intégration continue automatise build, tests et qualité à chaque push, pour détecter les régressions tôt et garder main toujours déployable.

L'intégration continue (CI) répond à un problème vieux comme le travail en équipe : quand plusieurs personnes modifient le même code, comment s'assurer que l'ensemble reste cohérent ? La réponse est d'automatiser, à chaque push, le build, les tests et les contrôles de qualité. Ainsi, une régression est détectée en quelques minutes par une machine, et non par un·e utilisateur·ice en production trois semaines plus tard. L'objectif est de garder la branche main toujours dans un état déployable.

Trois sigles proches sont souvent confondus, autant les clarifier une fois pour toutes. La CI vérifie que le code s'intègre proprement (tests, lint). Le CD (Continuous Delivery) prépare des artefacts prêts à déployer, le déploiement final restant déclenché à la main. Le Continuous Deployment va plus loin : dès que les tests passent, le code part automatiquement en production. Point important pour les débutant·es : tu peux — et tu devrais — avoir une CI solide sans aucun déploiement automatique. Le déploiement est une étape séparée et optionnelle.

GitHub Actions, l'outil de ce cours, s'organise autour de cinq notions qu'il faut poser d'emblée. Un workflow est un fichier YAML rangé dans .github/workflows/. Un événement le déclenche (un push, une pull request, une planification). Un job est un ensemble d'étapes qui s'exécutent sur une machine. Une étape (step) est une commande ou une action réutilisable. Et un runner est la machine virtuelle qui exécute tout ça (presque toujours ubuntu-latest). Un dernier point concret : sur un dépôt privé, les minutes d'exécution sont comptées et facturées au-delà d'un quota — optimiser sa CI a donc un impact direct sur le confort et sur la facture.

CI, CD, Continuous Deployment : ne pas confondre

  • CI (Continuous Integration) : tests automatiques à chaque push, on s'assure que le code intègre proprement
  • CD (Continuous Delivery) : on prépare des artefacts prêts à déployer, mais le déploiement reste manuel
  • Continuous Deployment : on pousse automatiquement en prod dès que les tests passent

Anatomie d'un workflow GitHub Actions

  • Workflow : un fichier YAML dans .github/workflows/
  • Event : ce qui déclenche le workflow (push, pull_request, schedule...)
  • Job : un ensemble d'étapes qui tournent sur un runner
  • Step : une action ou une commande shell
  • Runner : la machine virtuelle qui exécute le job (ubuntu-latest dans 95 % des cas)
.github/workflows/ci.yml — squelette minimal
name: CI

on:
  push:
    branches: [main]
  pull_request:

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: echo "Hello CI"

Plan gratuit

Sur un dépôt public, les minutes Actions sont illimitées. Sur un dépôt privé, tu as 2 000 minutes/mois gratuites pour un compte Free. Au-delà, c'est facturé à la minute. Optimiser sa CI a donc un impact direct sur la facture.

Vrai ou faux ?

Tu peux avoir une CI solide (build, tests, qualité à chaque push) sans aucun déploiement automatique : le déploiement relève du CD, qui est une étape distincte.

Tu veux ce cours pour ton équipe ?

Je peux adapter et animer ce cours pour tes formateur·ices ou tes apprenant·es, en présentiel ou en distanciel. Parlons-en pendant l'audit gratuit.

Réserver un audit gratuit →