Grundlagen der CI/CD-Pipeline

Erstellen Sie robuste CI/CD-Pipelines für automatisiertes Testen, Erstellen und Bereitstellen

Grundlagen der CI/CD-Pipeline

Continuous Integration und Continuous Deployment automatisieren Ihren Softwarebereitstellungsprozess.

Pipeline-Stufen

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

Beispiel: GitHub-Aktionen

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

Grundprinzipien

  1. Feedback korrigiert – Tests sollten schnell ausgeführt werden
  2. Früh scheitern – Probleme vor der Zusammenführung erkennen
  3. Reproduzierbare Builds – Gleiche Eingabe = gleiche Ausgabe
  4. Inkrementelle Bereitstellung – Stellen Sie häufig kleine Änderungen bereit

Umweltstrategie

Umwelt Zweck Trigger bereitstellen
Entwickler Testen Push to dev
Inszenierung Validierung vor der Produktion Zusammenführen mit main
Produktion Live-Site Manuelle Genehmigung