DevOpsFacile
AccueilParcours de formationCertificationsModulesCheat SheetÀ Propos
DevOpsFacile

Une plateforme d'apprentissage complète pour maîtriser les pratiques DevOps modernes, du débutant à l'expert.

contact@devopsfacile.fr

Formation

  • Parcours de formation
  • Modules

Informations

  • À Propos
  • Conditions d'utilisation
  • Confidentialité
  • Mentions légales

© 2026 DevOps Facile. Tous droits réservés.

Fait avec pour la communauté DevOps

ModulesCréer son premier pipeline CI/CD avec GitHub Actions

Module

Créez vos premiers pipelines CI/CD avec GitHub Actions : workflows, jobs et actions.

  • 1h30
  • Débutant
  • 6 exercices
Voir les exercices

Formation 100 % Linux

Tous les modules nécessitent un environnement Linux. Si vous êtes sur Windows, installez d'abord WSL (Windows Subsystem for Linux) avant de continuer.

Créer son premier pipeline CI/CD avec GitHub Actions


🎯 Objectifs

À la fin de ce module, vous serez capable de :

  • ✅ Comprendre les concepts CI/CD et leur importance
  • ✅ Créer un workflow GitHub Actions from scratch
  • ✅ Automatiser les tests sur chaque push
  • ✅ Utiliser des actions du Marketplace
  • ✅ Intégrer Docker dans un pipeline CI

📋 Prérequis

RequisNiveau
Git (branches, merge, PR)Intermédiaire
Docker (images, conteneurs)Débutant
Compte GitHubActif

📖 Pourquoi CI/CD ?

Le problème sans CI/CD

Sans automatisation, chaque livraison ressemble à ça :

  1. Un développeur pousse du code
  2. Quelqu'un lance les tests manuellement
  3. Quelqu'un build l'application manuellement
  4. Quelqu'un déploie manuellement

Résultat : c'est lent, sujet aux erreurs, et personne ne veut le faire.

La solution : CI/CD

TermeSignificationRôle
CIContinuous IntegrationBuild + test automatiques à chaque push
CDContinuous DeliveryDéploiement automatique après validation des tests

Les bénéfices

  • 🚀 Feedback rapide - erreurs détectées en minutes, pas en jours
  • 🛡️ Qualité du code - chaque changement est testé
  • 📦 Déploiement fiable - même processus à chaque fois
  • 🤝 Collaboration fluide - les PR sont validées automatiquement

🔄 Le Pipeline CI/CD

Un pipeline est une série d'étapes automatisées :

Code → Build → Test → Deploy
 ↑       ↓       ↓       ↓
Push   Compile  Vérifie  Met en
       le code  la qualité production
ÉtapeDescriptionExemple
BuildCompile le code, installe les dépendancesnpm ci, docker build
TestLance les tests automatisésnpm test, pytest
DeployDéploie sur un serveur ou cloudPush sur un registry, SSH

💡 Si une étape échoue, le pipeline s'arrête et vous êtes notifié.


🔧 Outils CI/CD

OutilHébergementGratuit ?Idéal pour
GitHub ActionsCloud (GitHub)✅ OuiProjets sur GitHub
GitLab CICloud / Self-hosted✅ OuiProjets sur GitLab
JenkinsSelf-hosted✅ Open sourceEntreprises, personnalisation
CircleCICloudPartielStartups, SaaS

💡 Nous utilisons GitHub Actions - gratuit, intégré à GitHub, et très populaire.


🏗️ GitHub Actions - Concepts

Chaque concept s'emboîte comme des poupées russes :

ConceptDéfinition
WorkflowFichier YAML dans .github/workflows/
EventCe qui déclenche le workflow (push, PR, cron…)
JobUn ensemble d'étapes qui s'exécute sur un runner
StepUne action ou commande dans un job
RunnerMachine virtuelle qui exécute le job
Workflow (.yml)
 └── Event (push)
      └── Job (test)
           ├── Step 1 (checkout)
           ├── Step 2 (setup node)
           └── Step 3 (npm test)

🚀 Premier Workflow

Créez le fichier .github/workflows/ci.yml :

yaml
name: CI

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - run: npm ci
      - run: npm test

Explication ligne par ligne

LigneRôle
name: CINom du workflow affiché dans GitHub
on: pushDéclenché à chaque push sur main
on: pull_requestDéclenché à chaque PR vers main
runs-on: ubuntu-latestExécute sur une VM Ubuntu
actions/checkout@v4Clone le dépôt dans le runner
actions/setup-node@v4Installe Node.js 20
npm ciInstalle les dépendances (mode CI)
npm testLance les tests

💡 npm ci est préféré à npm install en CI - plus rapide et déterministe.


🧩 Actions du Marketplace

Les actions sont des blocs réutilisables créés par la communauté.

Actions les plus utilisées

ActionRôle
actions/checkout@v4Clone le dépôt
actions/setup-node@v4Installe Node.js
actions/setup-python@v5Installe Python
actions/cache@v4Met en cache les dépendances

Utilisation :

yaml
- uses: actions/setup-python@v5
  with:
    python-version: '3.12'

💡 Toujours épingler la version avec @v4 pour éviter les surprises.


⚡ Déclencher un Workflow

Événements disponibles

ÉvénementDéclencheurExemple
pushPush sur une branchepush: branches: [main]
pull_requestOuverture/mise à jour d'une PRpull_request: branches: [main]
scheduleExécution planifiée (cron)schedule: - cron: '0 8 * * 1'
workflow_dispatchDéclenchement manuelBouton dans l'UI GitHub

Filtres par branche et chemin

yaml
on:
  push:
    branches: [main, develop]
    paths:
      - 'src/**'
      - '!docs/**'

💡 Le filtre paths évite de lancer le pipeline pour des changements qui ne touchent pas le code.


🐳 Workflow avec Docker

Combinez CI et Docker pour tester dans un conteneur :

yaml
jobs:
  docker-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Build image
        run: docker build -t myapp:${{ github.sha }} .
      - name: Run tests
        run: docker run myapp:${{ github.sha }} npm test

${{ github.sha }} utilise le hash du commit comme tag - chaque build est unique.


👀 Voir les Résultats

  1. Allez dans l'onglet Actions de votre dépôt GitHub
  2. Cliquez sur le workflow exécuté
  3. Vérifiez le statut :
  • ✅ Vert - tous les jobs ont réussi
  • ❌ Rouge - au moins un job a échoué
  1. Cliquez sur un job pour voir les logs détaillés

⚠️ Lisez toujours les logs en cas d'échec - le message d'erreur est souvent explicite.


❌ Erreurs Courantes

ErreurCauseSolution
No workflow foundFichier mal placéVérifiez .github/workflows/
Invalid workflow fileErreur de syntaxe YAMLVérifiez l'indentation (2 espaces)
npm ci failedPas de package-lock.jsonCommittez le fichier lock
Permission deniedDroits insuffisantsVérifiez les permissions du workflow
Action not foundMauvaise versionVérifiez @v4 vs @v3

📌 Points Clés

  • 🔄 CI = build + test automatiques à chaque push
  • 📦 CD = déploiement automatique après validation
  • 📝 Les workflows sont des fichiers YAML dans .github/workflows/
  • 🧩 Les actions sont des blocs réutilisables du Marketplace
  • 🐳 Docker s'intègre facilement dans un pipeline CI

📚 Ressources

  • Documentation GitHub Actions
  • Marketplace GitHub Actions
  • Syntaxe des workflows
  • Événements déclencheurs

🚀 Prochaines étapes

Vous avez créé vos premiers workflows CI/CD. Allez plus loin :

  1. GitHub Actions : multi-jobs, artefacts et workflows réutilisables - Pipelines multi-jobs, artefacts, cache et workflows réutilisables

Exercices Pratiques

6 exercices pour mettre en pratique

01

01 - Créer son premier workflow GitHub Actions

15 minutesDébutant
02

02 - Configurer les déclencheurs (on:)

15 minutesDébutant
03

03 - Utiliser des actions du Marketplace

20 minutesDébutant
04

04 - Automatiser les tests sur chaque push

20 minutesDébutant
05

05 - Utiliser les variables et le contexte GitHub

15 minutesDébutant
06

06 - Projet Capstone : Créer un pipeline CI/CD complet avec GitHub Actions

40 minutesIntermédiaire
Retour aux modules

Sur cette page

  • 🎯 Objectifs
  • 📋 Prérequis
  • 📖 Pourquoi CI/CD ?
  • Le problème sans CI/CD
  • La solution : CI/CD
  • Les bénéfices
  • 🔄 Le Pipeline CI/CD
  • 🔧 Outils CI/CD
  • 🏗️ GitHub Actions - Concepts
  • 🚀 Premier Workflow
  • Explication ligne par ligne
  • 🧩 Actions du Marketplace
  • Actions les plus utilisées
  • ⚡ Déclencher un Workflow
  • Événements disponibles
  • Filtres par branche et chemin
  • 🐳 Workflow avec Docker
  • 👀 Voir les Résultats
  • ❌ Erreurs Courantes
  • 📌 Points Clés
  • 📚 Ressources
  • 🚀 Prochaines étapes