Einführung in Continuous Integration – Anwendungsentwickler-Podcast #92

IT-Berufe-Podcast - A podcast by Stefan Macke - Mondays

Eine Einführung in die kontinuierliche Integration – Continuous Integration – gibt es in der zweiundneunzigsten Episode des Anwendungsentwickler-Podcasts. Inhalt Voraussetzungen * Völlig unabhängig von Programmiersprache oder Plattform. * Theoretisch auch ohne separate Software umsetzbar, aber einfacher mit etablierten Lösungen wie Jenkins, Team Foundation Server, Travis CI, Teamcity oder CruiseControl. * Alle Artefakte (Code, Oberflächen, Konfiguration usw.) müssen in der Versionsverwaltung liegen. * Ein automatischer Build des Projekts muss möglich sein (z.B. mit Gradle oder MS Build). * Der Build sollte möglichst schnell sein. * Die Funktionalität sollte mit automatischen Tests abgedeckt sein. * Entwickler müssen häufig – mindestens täglich – committen. Vorteile * Das Projekt ist jederzeit auf dem neusten Stand automatisiert baubar. * Vermeidung von „Works on my Machine“. * Vermeidung langer Integrationsphasen vor Deployments. * Erziehung der Entwickler zu kleinen Commits, sauberem Code und automatisierten Tests. * Projektbeteiligte bekommen jederzeit kurzfristiges Feedback zum Projektstand. * Statische Codeanalyse ist möglich. * Einhaltung von Code-Konventionen, z.B. mit Checkstyle. * Finden/Verhindern von Bugs, z.B. mit FindBugs. * Codeabdeckung durch Tests, z.B. mit JaCoCo. * Visualisierung von Abhängigkeiten, z.B. mit JDepend. * Trends können erkannt werden. * Artefakte können automatisch im Repository abgelegt werden. * Automatisches Deployment in eine Testumgebung kann stattfinden. Mögliche Erweiterungen * Verschiedene Strategien für die Versionierung möglich, z.B. Feature Branches oder Feature Toggles. * CI ist die Basis für Continuous Delivery und Continuous Deployment. Literaturempfehlungen Für Jenkins gibt es inzwischen eine eigene Konferenz, deren Videos größtenteils bei Confreaks verfügbar sind: Jenkins User Conference. Links * Permalink zu dieser Podcast-Episode * RSS-Feed des Podcasts * Kontinuierliche Integration – Wikipedia * Continuous Integration * Unterschiede zwischen Continuous Integration, Continuous Delivery und Continuous Deployment – Scrum.de * CI-Server bei heise Developer * Version Control Strategies

Visit the podcast's native language site