🚀 Exercices — CI/CD Avancé

10 exercices YAML avancés : matrix, environments, artifacts, workflows réutilisables.

EX 01

Matrix — 3 versions Node.js

Configurez une stratégie matrix pour tester en parallèle sur Node.js 18, 20 et 22. Utilisez fail-fast: false.

EX 02

Matrix OS × Node.js

Créez une matrix multi-dimensionnelle : 3 OS (ubuntu, windows, macos) × 2 versions Node (18, 20). Utilisez ${{ matrix.os }} pour le runner.

EX 03

needs: [test, lint]

Définissez 3 jobs : lint, test et build. Le job build attend que les deux réussissent.

EX 04

environment: production avec url

Configurez un job deploy qui cible l'environment production et expose l'URL de déploiement via url:.

EX 05

Utiliser ${{ secrets.DEPLOY_TOKEN }}

Écrivez un step de déploiement qui passe le secret DEPLOY_TOKEN comme variable d'environnement dans un script.

EX 06

actions/cache@v4 pour node_modules

Configurez actions/cache@v4 avec une clé basée sur le hash du package-lock.json et un restore-keys de fallback.

EX 07

upload-artifact + download-artifact entre 2 jobs

Job build : upload le dossier dist/ comme artifact. Job deploy : télécharge cet artifact et exécute le déploiement.

EX 08

Workflow réutilisable avec workflow_call et inputs

Écrivez un workflow réutilisable qui accepte un input node-version via on: workflow_call: inputs:.

EX 09

Déploiement conditionnel : if: github.ref == 'refs/heads/main'

Ajoutez une condition if: sur le step de déploiement pour qu'il ne s'exécute que sur la branche main lors d'un push.

EX 10

Workflow complet : matrix test → build → deploy pages

Pipeline complet : job test avec matrix Node, job build qui attend test, job deploy sur GitHub Pages avec environment.

→ Mini-projet : Simulateur Pipeline CI/CD