-
Notifications
You must be signed in to change notification settings - Fork 0
CI CD
CI/CD (Continuous Integration & Continuous Delivery) ist kein einzelnes Tool, sondern ein Prinzip moderner Softwareentwicklung. Es beschreibt, wie Teams Code-Änderungen effizient, sicher und automatisiert in lauffähige Software verwandeln – von der Entwicklung bis zur Bereitstellung.
💡 Warum CI/CD? Stell dir vor, du arbeitest mit anderen an einem Python-Skript für IoT-Daten auf dem Raspberry Pi. Früher:
- Jede:r testete lokal.
- Änderungen wurden manuell zusammengeführt – oft mit Fehlern: inkompatible Versionen, vergessene Tests oder kaputte Builds.
CI/CD löst diese Probleme durch Automatisierung!
CI sorgt dafür, dass Codeänderungen ständig integriert und automatisch geprüft werden.
Jede Änderung, die ins Git-Repository gepusht wird, löst automatisch diese Schritte aus:
| Schritt | Beispiel |
|---|---|
| Code bauen | Kompilieren mit make, cmake oder pip install. |
| Unit-Tests ausführen | Automatisierte Tests prüfen Funktionen (z. B. mit pytest). |
| Statische Codeanalyse | Tools wie pylint oder flake8 prüfen Code-Stil und potenzielle Fehler. |
| Feedback | Entwickler:innen erhalten sofort eine Erfolgs- oder Fehlermeldung. |
🎯 Ziel von CI:
Fehler früh erkennen – bevor sie das Projekt blockieren.
CD geht einen Schritt weiter: Wenn der Code alle Tests besteht, wird er automatisch bereitgestellt – zunächst in Testumgebungen, später ggf. in der Produktion.
| Aktion | Beispiel |
|---|---|
| Docker-Image bauen | Automatisches Erstellen und Hochladen eines Images nach Docker Hub. |
| Deployment auf Testserver | Neue Version einer Webanwendung wird auf einem Staging-Server bereitgestellt. |
| Raspberry Pi aktualisieren | Ein getestetes Python-Skript wird automatisch auf alle Pis im Netzwerk ausgerollt. |
| Rollback-Mechanismen | Bei Fehlern wird automatisch zur letzten stabilen Version zurückgesprungen. |
💡 Vorteil von CD:
Software bleibt stets aktuell, und neue Features erreichen Nutzer:innen schneller und sicherer.
DOITPi bietet die perfekte Umgebung, um CI/CD auf dem Raspberry Pi praktisch zu erleben:
-
Lokale CI/CD-Pipeline:
- Nutze den integrierten Git-Server von DOITPi für Versionskontrolle.
- Automatische Build-Skripte und Docker-Support sind vorinstalliert.
-
Lernziel:
- Du lernst nicht nur, wie man Software entwickelt, sondern auch, wie man sie robust, reproduzierbar und automatisiert ausliefert – genau das, worum es in modernen DevOps-Prozessen geht.
- Fun Fact: DOITPi selbst wurde mit einer CI/CD-Pipeline erstellt!
Erstelle eine .github/workflows/ci.yml-Datei in deinem Repository:
name: Python CI
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run tests
run: pytestAutomatisches Bauen und Bereitstellen eines Docker-Images:
name: Docker CD
on:
push:
branches: [ main ]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push
uses: docker/build-push-action@v4
with:
push: true
tags: dein-benutzername/doitpi-app:latest💡 Tipp für DOITPi:
- Nutze GitLab CI/CD oder GitHub Actions, um deine eigenen Pipelines zu erstellen.
- Teste deine Skripte lokal mit Docker und Ansible – beides ist in DOITPi vorinstalliert!
| Frage | Antwort |
|---|---|
| Brauche ich teure Tools für CI/CD? | Nein! DOITPi bietet kostenlose Open-Source-Tools wie Git, Docker etc. |
| Kann ich CI/CD auf einem Raspberry Pi nutzen? | Ja! DOITPi ist vorbereitet für lokale CI/CD-Pipelines (z. B. mit GitLab Runner). |
| Was ist der Unterschied zwischen CI und CD? | CI integriert Codeänderungen, CD stellt sie bereit. Beide zusammen bilden CI/CD. |
| Wie teste ich meine Pipeline? | Nutze Test-Branches und simulierte Deployments, bevor du in Produktion gehst. |
- ToDo CI/CD mit GitLab Runner: Lokale Pipelines auf dem Raspberry Pi einrichten.
- ToDo Docker in DOITPi: Container für CI/CD nutzen.
- ToDo Automatisierte Tests mit pytest: Unit-Tests für deine IoT-Projekte schreiben.
💡 Warum CI/CD mit DOITPi?
- Praktisch lernen: Erlebe DevOps-Prozesse hands-on auf dem Raspberry Pi.
- Skalierbar: Von kleinen Skripten bis zu komplexen IoT-Systemen – CI/CD wächst mit deinen Projekten.
- Zukunftssicher: Automatisierung ist ein Kernskill in moderner Softwareentwicklung!
Hier zur Startseite der DOITPi-Wiki
DOITPi ist Open Source und steht unter der MIT-Lizenz.
- Code: GitHub Repository
- Dokumentation: Wiki
- Releases: Aktuelles Image herunterladen
Hinweis: DOITPi nutzt Tools und Bibliotheken Dritter. Die jeweiligen Lizenzen finden Sie in den Danksagungen.
DOITPi steht auf den Schultern von Riesen. Besonderer Dank gilt:
- Raspberry Pi OS (Basis-System)
- CustomPiOS (Image-Erstellung)
- NetworkManager (Auto-Hotspot-Funktion)
- ROS2 & Node-RED (Robotik & IoT)
- Ansible (Automatisierung)
- Allen Mitwirkenden (GitHub Contributors)!
💙 Möchtest du hier auftauchen? Trage bei und sende einen Pull Request!
DOITPi © 2023–2025 DevOps & IoT für alle – einfach, offen, leistungsstark.
Für Eilige:
Du willst sofort loslegen? Hier ist der direkte Weg zur Installation:
Was du brauchst:
- Raspberry Pi (Modell 3/4/5 oder Zero 2 W)
- microSD-Karte (mind. 32 GB)
- Kartenleser o.Ä
- Netzteil
- 15 Minuten Zeit
Los geht’s! 🎉
⚡ DOITPi Auto-Hotspot
Immer verbunden – automatisch!
- Aktiviert sich selbst, wenn kein WLAN verfügbar ist.
-
SSID:
AP_<Hostname>| Passwort:123456789 - Zugriff per Browser/SSH – ideal für Headless-Betrieb.
- Automatische Umschaltung alle 60 Sekunden.
🔒 Passwort anpassen! 🔧
Kurz, klar, direkt zum Ziel – perfekt für alle, die keine Zeit verlieren wollen! 😊