Introduction
Le CI/CD (Continuous Integration / Continuous Deployment) est un ensemble de pratiques qui automatisent le processus de test et de deploiement du code. Au lieu de deployer manuellement — avec le stress et les erreurs que cela implique — un pipeline CI/CD prend en charge chaque etape automatiquement.
Selon le rapport DORA (DevOps Research and Assessment) de Google de 2023, les equipes pratiquant le deploiement continu deployent 46 fois plus frequemment que celles qui ne le pratiquent pas, avec un taux d'echec 7 fois inferieur.
Les concepts
Continuous Integration (CI)
La CI consiste a fusionner frequemment les modifications de code dans une branche commune (generalement main), avec des tests automatises qui s'executent a chaque fusion.
Le principe : chaque push declenche un pipeline qui :
- Compile le code (ou verifie les types pour TypeScript)
- Execute les tests unitaires et d'integration
- Verifie le linting et le formatage
- Signale immediatement si quelque chose echoue
Continuous Deployment (CD)
Le CD va plus loin : si tous les tests passent, le code est automatiquement deploye en production. Aucune intervention manuelle.
Variante plus prudente : le Continuous Delivery deploie automatiquement en staging, mais requiert une validation manuelle pour la production.
Un pipeline concret avec GitHub Actions
# .github/workflows/deploy.yml
name: Deploy to production
on:
push:
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 run lint
- run: npm run type-check
- run: npm run test
deploy:
needs: test
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
- name: Deploy to Cloudflare Pages
uses: cloudflare/pages-action@v1
with:
apiToken: ${{ secrets.CF_API_TOKEN }}
accountId: ${{ secrets.CF_ACCOUNT_ID }}
projectName: mon-projet
directory: distCe pipeline :
- Se declenche a chaque push sur
main - Execute le linting, la verification TypeScript et les tests
- Si tout passe, build et deploie sur Cloudflare Pages
Les plateformes CI/CD
GitHub Actions
Integre nativement a GitHub, genereux en minutes gratuites (2 000/mois pour les depots publics). Notre recommandation pour les projets heberges sur GitHub.
GitLab CI/CD
Integre a GitLab, tres complet. 400 minutes gratuites/mois.
Vercel / Netlify / Cloudflare Pages
Ces plateformes incluent leur propre CI/CD : chaque push declenche automatiquement un build et un deploiement. Zero configuration pour les cas simples.
Les bonnes pratiques
Les preview deployments
Chaque Pull Request genere un deploiement de preview avec sa propre URL. L'equipe peut tester les changements avant de merger. Vercel, Netlify et Cloudflare Pages offrent cette fonctionnalite nativement.
Les rollbacks
Si un deploiement cause un probleme, vous devez pouvoir revenir a la version precedente en quelques secondes. Les plateformes modernes conservent un historique des deploiements et permettent un rollback instantane.
Les secrets
Ne stockez jamais de cles API ou de mots de passe dans le code. Utilisez les secrets de votre plateforme CI/CD (GitHub Secrets, variables d'environnement GitLab, etc.).
Les notifications
Configurez des notifications (Slack, email) pour etre alerte en cas d'echec du pipeline. Un pipeline qui echoue silencieusement est pire qu'un deploiement manuel.
Conclusion
Le CI/CD est un investissement initial qui se rentabilise des le premier mois : moins de stress, moins d'erreurs, deploiements plus frequents. Commencez avec un pipeline simple (lint + tests + deploy) et enrichissez-le progressivement.
