Notre pipeline CI/CD utilise ArgoCD pour le GitOps, GitHub Actions pour l'intégration continue, et Helm pour le packaging des applications. Chaque commit déclenche automatiquement les tests, la construction des images, et le déploiement.
Étapes du pipeline :
- Linting & Tests : ESLint, Jest, SonarQube
- Build : Multi-stage Docker builds
- Security Scan : Trivy, Snyk
- Deploy : ArgoCD avec blue-green deployment
- Monitoring : Prometheus alerts
name: CI/CD Pipeline
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
cache: 'npm'
- run: npm ci
- run: npm run lint
- run: npm run test:coverage
- name: Upload coverage
uses: codecov/codecov-action@v3
build:
needs: test
runs-on: ubuntu-latest
steps:
- name: Build and push Docker image
uses: docker/build-push-action@v4
with:
context: .
push: true
tags: dakar/app:${{ github.sha }}