Kennisbank › Developer › Mettre en place un pipeline CI/CD avec GitHub Actions
developer gevorderd 26 August 2026

Mettre en place un pipeline CI/CD avec GitHub Actions

Mettre en place un pipeline CI/CD avec GitHub Actions

Pipeline CI/CD configurer avec GitHub Actions

Cet article explique comment configurer une pipeline CI/CD avec GitHub Actions, destiné aux développeurs qui veulent automatiser leur processus de build, de test et de déploiement.

Prérequis

- Un compte GitHub avec un dépôt contenant votre code - Git 2.40.0 ou plus récent installé sur votre machine locale - Accès aux paramètres du dépôt (droits `write` au minimum) - Un projet avec un langage de programmation pris en charge (Node.js 20.x, Python 3.11, Java 17, ou équivalent) - Facultatif : une cible de déploiement comme un VPS, une plateforme cloud, ou un registre de conteneurs

Étapes

1. Créez le répertoire des workflows

GitHub Actions lit les fichiers de workflow depuis le répertoire `.github/workflows` à la racine de votre dépôt. Créez ce répertoire :

mkdir -p .github/workflows

2. Créez le fichier de workflow

Créez un nouveau fichier nommé `ci.yml` dans le répertoire `.github/workflows`. Ce fichier définit la pipeline complète au format YAML.

touch .github/workflows/ci.yml

3. Définissez le déclencheur du workflow

Ouvrez `.github/workflows/ci.yml` dans votre éditeur. Commencez par le nom du workflow et les déclencheurs. Le déclencheur `push` démarre la pipeline à chaque commit vers `main`, le déclencheur `pull_request` à chaque pull request vers `main` :

name: CI/CD Pipeline</p><p>on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

4. Configurez le job de build

Ajoutez un job qui construit le projet. Ce job s'exécute sur un runner Ubuntu avec Node.js 20. L'action `actions/checkout@v4` récupère le code, et `actions/setup-node@v4` installe la version correcte de Node.js :

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

5. Ajoutez un job de test

Ajoutez un deuxième job qui exécute les tests. Ce job dépend du job de build via `needs`, afin que les tests ne s'exécutent que si le build réussit. Utilisez `actions/upload-artifact@v4` pour conserver les résultats du build :

test:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - run: npm ci
      - run: npm test
      - uses: actions/upload-artifact@v4
        with:
          name: test-results
          path: test-results/

6. Ajoutez un job de déploiement

Ajoutez un job de déploiement qui ne s'exécute que lors des pushes vers `main`, pas lors des pull requests. Utilisez `if` pour vérifier cela. Ce job utilise des secrets pour les identifiants — conservez-les dans les paramètres du dépôt sous Settings → Secrets and variables → Actions :

deploy:
    needs: test
    if: github.ref == 'refs/heads/main' && github.event_name == 'push'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci
      - run: npm run build
      - name: Deploy to production
        run: |
          rsync -avz --delete dist/ user@yourserver.com:/var/www/html/
        env:
          SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}

7. Committez et poussez

Committez les fichiers de workflow et poussez-les vers GitHub. La pipeline démarre automatiquement :

git add .github/workflows/ci.yml
git commit -m "Add CI/CD pipeline with GitHub Actions"
git push origin main

8. Vérifiez l'exécution du workflow

Allez sur votre dépôt GitHub. Cliquez sur l'onglet Actions dans la barre de navigation supérieure. Vous verrez le workflow qui vient de démarrer. Cliquez dessus pour suivre l'exécution de chaque étape. Les messages d'erreur apparaissent directement dans le journal d'exécution.

Vérification

Vérifiez que la pipeline fonctionne correctement en consultant le statut de la dernière exécution :

gh run list --limit 5

Cette commande affiche les cinq dernières exécutions de workflow avec leur statut (`completed`, `success`, `failure`). Vous aurez besoin de la CLI GitHub (version 2.40.0 ou plus récente), installée et authentifiée avec `gh auth login`.

Problèmes fréquents

1. Le workflow ne démarre pas

Vérifiez que le fichier `ci.yml` se trouve exactement dans `.github/workflows/`, pas dans un sous-répertoire. Vérifiez aussi que la syntaxe YAML est correcte — une indentation incorrecte d'un seul espace fait que GitHub ignore le fichier. Validez la syntaxe avec `npx yaml-lint .github/workflows/ci.yml`.

2. `npm ci` échoue avec "package-lock.json not found"

`npm ci` nécessite un fichier `package-lock.json`. Générez-le localement avec `npm install` et committez le fichier, ou remplacez `npm ci` par `npm install` dans le workflow.

3. Le déploiement échoue avec "Permission denied (publickey)"

La clé SSH que vous avez placée dans le secret `SSH_PRIVATE_KEY` doit correspondre à une clé publique dans le fichier `authorized_keys` de l'utilisateur cible sur le serveur. Testez d'abord la connexion manuellement depuis votre machine locale avec `ssh -i /chemin/vers/clé user@yourserver.com` avant de relancer la pipeline.

Cette configuration vous donne une pipeline CI/CD fonctionnelle avec des phases de build, de test et de déploiement séparées. Vous pouvez étendre les jobs avec des étapes supplémentaires comme des builds de conteneurs, des analyses de sécurité ou des notifications — mais la structure de base reste la même. La question n'est pas de savoir si votre pipeline échouera, mais quand — et à quelle vitesse vous saurez trouver les journaux qui expliquent pourquoi.

← Retour à la base de connaissances
← Terug naar kennisbank