Apprends à automatiser la CI avec Github Actions : build Docker et vérification TypeScript pour un déploiement React Router 7 fiable.
avec React Router 7
Posez vos questions 24/7 à notre IA experte en React Router 7
Validez vos acquis avec des quiz personnalisés et un feedback instantané
Dans cette leçon, tu vas apprendre à :
build
(image Docker) et typecheck
(TS strict) ;En clair : tu poses les bases d’un pipeline de Continuous Integration robuste, première brique indispensable avant le déploiement automatisé.
1# depuis la racine du projet2git init3git add .4git commit -m "Initial commit"
origin
, bascule sur main
et pousse :1git branch -M main2git remote add origin git@github.com:<ton-user>/5-configurer-les-github-actions.git3git push -u origin main
push
, rafraîchis la page GitHub : tout ton code est en ligne.Depuis l’onglet Actions de GitHub, sélectionne le template “Docker image” puis clique sur Set up this workflow
.
GitHub génère automatiquement un fichier :
1name: Docker Image CI23on:4push:5branches: ["main"]6pull_request:7branches: ["main"]89jobs:10build:11runs-on: ubuntu-latest12steps:13- uses: actions/checkout@v4 # 1️⃣ clone le repo sur le runner14- name: Build the Docker image # 2️⃣ docker build15run: docker build . -t my-app:latest
actions/checkout@v4
est le “git clone” de la plate-forme – indispensable dans 99 % des workflows.
Valide le fichier avec Commit changes.
Un dossier .github/workflows
apparaît : ton projet est désormais “CI ready”.
Élément | Rôle |
---|---|
on | Déclencheurs (push, PR, cron…). Ici seulement branch main . |
jobs | Liste de tâches pouvant tourner en parallèle. |
runs-on | OS du runner. ubuntu-latest = VM Linux fournie par GitHub. |
steps | Commandes séquentielles ; chaque step tourne dans le même conteneur que le job . |
Nous voulons bloquer la CI si le code TypeScript n’est plus valide.
1jobs:2build:3…4+ typecheck:5+ runs-on: ubuntu-latest6+ steps:7+ - uses: actions/checkout@v48+ - name: Install dependencies9+ run: npm ci10+ - name: Run typechecking11+ run: npm run typecheck
📥 Commit, pousse, puis ouvre l’onglet Actions : une nouvelle exécution démarre avec 2 jobs.
Dans la vidéo, le job typecheck
échoue :
1error TS2322: Type 'undefined' is not assignable to type 'string'.
Reproduis localement :
1npm run typecheck
La commande plante au même endroit → parfait.
Corrige le fichier incriminé (ici users.server.ts
), puis relance :
1npm run typecheck # ✅ 0 error2git add .3git commit -m "fix: type error in addUser"4git push
Nouvelle exécution GitHub Actions : les deux jobs passent au vert.
Le même principe s’applique aux tests unitaires, à des scripts de lint, au build statique, etc.
npm ci
) quand c’est nécessaire.actions/cache
) pour accélérer npm ci
sur les jobs lourds.main
dans Settings → Branch protection
(merge refusé si la CI échoue)..yml
.Dans la prochaine leçon on s’attaque au Dockerfile de production : comment embarquer React Router, Prisma et Tailwind dans une image minimaliste, puis pousser cette image sur Docker Hub – prérequis ultime avant le déploiement auto sur ton VPS.
Quelle est la principale différence entre les composants client et serveur dans React ?
Quelle technique est recommandée pour éviter les rendus inutiles dans React ?
Quel hook permet de gérer les effets de bord dans un composant React ?
Comment implémenter la gestion des erreurs pour les requêtes API dans React ?
Quelle est la meilleure pratique pour déployer une application React en production ?