Valentin LEROUGE

Blog

Mettre en place une CI/CD avec GitHub Actions

Pourquoi GitHub Actions est une solution simple et puissante pour automatiser vos tests, builds et déploiements.

19 Dec 2025Valentin Lerouge2 min de lecture
#github#ci-cd#devops

GitHub Actions permet d'automatiser les tests, les builds et les deploiements directement depuis votre repository. Pas besoin d'outils externes : tout est integre a GitHub.

Les avantages concrets

  • Mise en place rapide : un fichier YAML suffit.
  • Integration native : gestion des PR, des tags et des releases sans configuration complexe.
  • Secrets securises : variables sensibles stockees dans GitHub.
  • Marketplace riche : actions pretes a l'emploi pour lint, tests, deploy, etc.

Exemple 1 : CI simple (tests + lint)

Creez un fichier .github/workflows/ci.yml :

name: CI

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

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

Exemple 2 : Deploiement avec secrets

Supposons un deploy sur un serveur via SSH.

  1. Ajoutez vos secrets dans GitHub :

    • SSH_HOST
    • SSH_USER
    • SSH_PRIVATE_KEY
  2. Workflow .github/workflows/deploy.yml :

name: Deploy

on:
  push:
    branches: ["main"]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: "npm"
      - run: npm ci
      - run: npm run build
      - name: Deploy via SSH
        uses: appleboy/ssh-action@v1.0.3
        with:
          host: ${{ secrets.SSH_HOST }}
          username: ${{ secrets.SSH_USER }}
          key: ${{ secrets.SSH_PRIVATE_KEY }}
          script: |
            cd /var/www/mon-app
            git pull
            npm ci
            npm run build
            pm2 restart mon-app

Exemple 3 : Notification Discord apres un deploiement

Ajoutez un secret DISCORD_WEBHOOK_URL dans GitHub, puis ajoutez l'etape suivante
dans votre workflow (apres le build ou le deploy) :

# Notification Discord apres deploiement PROD
- name: Notify Discord (production)
  if: success() && github.ref == 'refs/heads/master'
  run: |
    SHORT_SHA=${GITHUB_SHA::7}
    curl -X POST -H "Content-Type: application/json" \
      -d "{\"content\":\":tada: Deploiement **PRODUCTION** reussi pour \`${GITHUB_REPOSITORY}\` (commit \`${SHORT_SHA}\`) : <https://github.com/${GITHUB_REPOSITORY}/commit/${GITHUB_SHA}>\\nDeploye par: \`${GITHUB_ACTOR}\`\"}" \
      ${{ secrets.DISCORD_WEBHOOK_URL }}

Comment ajouter un secret dans GitHub

  1. Ouvrez votre repository.
  2. Allez dans Settings > Secrets and variables > Actions.
  3. Cliquez sur New repository secret.
  4. Donnez un nom (ex: SSH_HOST) et collez la valeur.

Ces secrets sont ensuite accessibles via secrets.NOM_DU_SECRET dans vos workflows.

Bonnes pratiques

  • Gardez vos secrets hors du code.
  • Utilisez des environnements GitHub (staging, production) pour isoler les secrets.
  • Declenchez vos workflows sur pull_request et push.
  • Ajoutez une etape de cache pour accelerer les builds.