Mettre en place un pipeline CI/CD avec GitHub Actions : Un guide étape par étape

Adam Fraga | Jan 29, 2025 min read

GitHub Actions est une plateforme d’automatisation intégrée à GitHub qui permet de créer, tester et déployer du code directement depuis votre dépôt. Ce guide vous explique comment configurer un pipeline CI/CD (Intégration Continue/Déploiement Continu) avec GitHub Actions pour automatiser vos workflows de développement.


Étape 1 : Comprendre les bases de GitHub Actions

GitHub Actions utilise des workflows pour définir des tâches automatisées. Un workflow est un fichier YAML qui décrit une séquence d’étapes à exécuter en réponse à des événements spécifiques (comme un push ou une pull request).

  • Événements : Déclencheurs qui lancent un workflow (ex : push, pull_request).
  • Jobs : Tâches indépendantes qui s’exécutent dans un environnement virtuel.
  • Steps : Actions individuelles à l’intérieur d’un job (ex : exécuter des commandes, installer des dépendances).

Étape 2 : Créer un fichier de workflow

  1. Dans votre dépôt GitHub, créez un dossier .github/workflows à la racine.
  2. Ajoutez un fichier YAML pour définir votre workflow (ex : ci-cd-pipeline.yml).

Voici un exemple de fichier de workflow pour un projet Node.js :

name: CI/CD Pipeline  

on:  
  push:  
    branches:  
      - main  
  pull_request:  
    branches:  
      - main  

jobs:  
  build-and-test:  
    runs-on: ubuntu-latest  

    steps:  
      - name: Checkout code  
        uses: actions/checkout@v3  

      - name: Set up Node.js  
        uses: actions/setup-node@v3  
        with:  
          node-version: 18  

      - name: Install dependencies  
        run: npm install  

      - name: Run tests  
        run: npm test  

  deploy:  
    runs-on: ubuntu-latest  
    needs: build-and-test  
    if: github.ref == 'refs/heads/main'  

    steps:  
      - name: Checkout code  
        uses: actions/checkout@v3  

      - name: Set up Node.js  
        uses: actions/setup-node@v3  
        with:  
          node-version: 18  

      - name: Install dependencies  
        run: npm install  

      - name: Build project  
        run: npm run build  

      - name: Deploy to production  
        run: echo "Deploying to production..."  
        # Remplacez cette commande par votre script de déploiement  

Étape 3 : Configurer les étapes du pipeline

1. Checkout du code

  • Utilisez l’action actions/checkout pour récupérer le code du dépôt.

2. Configuration de l’environnement

  • Utilisez des actions comme actions/setup-node pour configurer l’environnement de développement (ex : Node.js, Python, etc.).

3. Installation des dépendances

  • Exécutez des commandes pour installer les dépendances nécessaires (ex : npm install, pip install -r requirements.txt).

4. Exécution des tests

  • Ajoutez une étape pour exécuter les tests automatisés (ex : npm test, pytest).

5. Build et déploiement

  • Si les tests réussissent, lancez une étape de build (ex : npm run build) et déployez le code en production.

Étape 4 : Déclencher le workflow

Le workflow est automatiquement déclenché par les événements définis dans le fichier YAML (ex : un push sur la branche main ou une pull request). Vous pouvez visualiser l’état des workflows dans l’onglet Actions de votre dépôt GitHub.


Étape 5 : Personnaliser le pipeline

Ajouter des environnements multiples

Vous pouvez configurer des jobs pour s’exécuter sur différents systèmes d’exploitation (ex : ubuntu-latest, windows-latest, macos-latest) pour tester la compatibilité multiplateforme.

Utiliser des secrets pour le déploiement

Pour déployer en production, utilisez des secrets GitHub pour stocker des informations sensibles (comme les clés API ou les identifiants de connexion).

  1. Allez dans Settings > Secrets and variables > Actions.
  2. Ajoutez un nouveau secret (ex : PROD_API_KEY).
  3. Utilisez-le dans votre workflow avec ${{ secrets.PROD_API_KEY }}.

Étape 6 : Optimiser et surveiller

  • Optimisation : Utilisez des matrices pour exécuter des tests en parallèle sur plusieurs versions de langages ou systèmes d’exploitation.
  • Surveillance : Consultez les logs des workflows pour identifier les erreurs et améliorer l’efficacité du pipeline.

Conclusion

Avec GitHub Actions, vous pouvez facilement mettre en place un pipeline CI/CD robuste pour automatiser vos processus de développement. Ce guide vous a montré comment créer un workflow de base, configurer des étapes essentielles et personnaliser votre pipeline pour répondre à vos besoins spécifiques. Explorez la documentation officielle de GitHub Actions pour découvrir des fonctionnalités avancées et optimiser davantage vos workflows !