Upload
plone-foundation
View
401
Download
0
Embed Size (px)
DESCRIPTION
Continuous Integration ist Begriff aus der Softwareentwicklung, der den Prozess des fortlaufenden Zusammenfügens von Komponenten zu einer Anwendung beschreibt. Das Ziel der kontinuierlichen Integration ist die Steigerung der Softwarequalität. Jede "Integration" führt zu einem automatisierten Build-Prozess der verschiedene Software-Tests und Code-Analyseschritte ausführt um Fehler so früh wie möglich erkennen und beheben zu können. Dieser Vortrag wird die Prinzipien der Kontinuierlichen Integration vorstellen und aufzeigen wie diese für ein Python-Projekt umgesetzt werden können. Dabei werden die Erfahrungen aus dem Betrieb des CI-Servers für das Plone Projekt, eines der größten Python-basierten Open Source Projekte, vorgestellt. Unter anderem werden die folgenden Themen behandelt: - Aufsetzen eines Continous Integration Servers mit Travis-CI oder Jenkins - Einbindung verschiedener Versionskontrollsysteme - Das Ausführen verschiedener Tests und die Analyse der Code-Qualität für jede Integration - Wie Jenkins verwendet werden kann um automatisch eine Software Dokumentation zu erstellen, die Entwickler zu benachrichtigen, Software Releases zu erstellen und Software zu deployen - Das Schreiben und kontinuierliche Ausführen von funktionalen Akzeptanztests, basierend auf Robot Framework
Citation preview
Who let the robot out?Qualitativ hochwertige Softwaredurch Continuous Integration
Timo Stollenwerk
Wunschdenken
Pünktlich
Im Budget
Fehlerfrei
Lesbar
Wartbarer Code
Dokumentiert
Schnell
Funktionsfähig
Wirklichkeit
Broken build
„Es funktioniert bei mir“
Nicht auslieferbar
Schlechte Performanz
Unwartbarer Code
Verzögert
Über dem Budget
Assumption is the mother of all screw-ups
Software Qualität?!
Grundprinzipien
Do not break things
If things are broken, don't make it more complicated
If you broke the build, fix it as soon as possible
Getting Started
Post-commit hook
Failure / Fix
Tests
collective.xmltestreport / Jenkins Cobertura Plugin
AkzeptanztestsAkzeptanztests
RobotFramework
Jenkins Robot Plugin / Saucelabs
Code Analyse
buildout.jenkins / plone.recipe.codeanalysis / Jenkins Violations Plugin
Performanz Tests
Jenkins jMeter Plugin
Dokumentation
Sphinx / Robot / Build Step
Benachrichtigungen
Jenkins Ext-Email Plugin / Jenkins Dashboard Plugin
Continuous Deyploment
Jenkins Build Pipeline Plugin
Zusammenfassung
Pünktlich
Im Budget
Fehlerfrei
Lesbar
Wartbarer Code
Dokumentiert
Schnell
Funktionsfähig
Who let the robot out?
Timo StollenwerkIRC: [email protected]
Qualitativ hochwertige Softwaredurch Continuous Integration
● Robot: http://www.flickr.com/photos/jerry_reynolds/2538180907
● Dark Sky: http://www.flickr.com/photos/psychoscheiko/5812349452
● Lego: http://www.flickr.com/photos/ogimogi/2253657555
● Broken Glass: http://www.flickr.com/photos/akeg/2230862848
Bilder