Fondamentaux du pipeline CI/CD

Créez des pipelines CI/CD robustes pour les tests, la création et le déploiement automatisés

Fondamentaux du pipeline CI/CD

L'intégration continue et le déploiement continu automatisent votre processus de livraison de logiciels.

Étapes du pipeline

┌─────────┐   ┌───────┐   ┌────────┐   ┌────────┐
│  Code   │ → │ Build │ → │  Test  │ → │ Deploy │
└─────────┘   └───────┘   └────────┘   └────────┘
     │             │           │            │
   commit       compile      unit        staging
   push         bundle     integration    prod

Exemple : actions GitHub

name: CI

on:
  push:
    branches: [main, dev]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.11"

      - name: Install dependencies
        run: pip install -e ".[dev]"

      - name: Lint
        run: ruff check .

      - name: Type check
        run: mypy src/

      - name: Test
        run: pytest --cov

  deploy:
    needs: test
    if: github.ref == 'refs/heads/main'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Deploy
        run: ./scripts/deploy.sh

Principes clés

  1. Commentaires fixes - Les tests devraient s'exécuter rapidement
  2. Échouer tôt - Détectez les problèmes avant de fusionner
  3. Builds reproductibles - Même entrée = même sortie
  4. Déploiement incrémentiel – Déployez souvent de petits changements

Stratégie Environnementale

Environnement Objectif Déployer le déclencheur
Développeur Tests Appuyez sur dev
Mise en scène Validation pré-production Fusionner avec main
Fabrication Site en direct Approbation manuelle