Kontinuierliche Integration am Beispiel Jenkins



Ähnliche Dokumente
Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Build-Pipeline mit Jenkins

Versionsverwaltung mit SVN

Geany Just Not Another Editor

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

OX Updater: als frei zu betrachten sind. Bitte senden Sie Verbesserungshinweise zu dieser Dokumentation an

Eprog Starthilfe. 5. Oktober Einleitung 2

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Continuous Integration mit Jenkins

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

Einreichung zum Call for Papers

Einspielanleitung für das Update DdD Cowis backoffice DdD Cowis pos

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Durch Doppelklick auf die Zeile der entsprechenden Schnittstelle gelangt man in die Detaileingabe der Schnittstelle.

Version 1.0 [Wiederherstellung der Active Directory] Stand: Professionelle Datensicherung mit SafeUndSave.com. Beschreibung.

Wie benutzt man TortoiseSVN

Deployment Deployment Seite 1 / 25

TeamSpeak3 Einrichten

Digital signierte Rechnungen mit ProSaldo.net

Powermanager Server- Client- Installation

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

HSR git und subversion HowTo

GS-Programme 2015 Allgemeines Zentralupdate

SharePoint Demonstration

Herzlich Willkommen bei der nfon GmbH

Outlook Vorlagen/Templates

Installationsanleitung. TFSInBox

Stapelverarbeitung Teil 1

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Was versteht man unter Softwaredokumentation?

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

Wie mache ich eine Datensicherung vom SQL Server Express

Formular»Fragenkatalog BIM-Server«

Anwendungsbeispiele. Neuerungen in den s. Webling ist ein Produkt der Firma:

Technische Hinweise. Dokumentation Sage bäurer GmbH, D Donaueschingen Weitere Produkt-Infos:

0. VORBEMERKUNG VORBEREITUNG DES SYSTEMS INSTALLATION UND KONFIGURATION VON PD-ADMIN Installation...3

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

- Installation. Systemvoraussetzungen für Debian/Ubuntu. conversations installieren conversations wird als TGZ-Archiv mit dem Namen

Verteilte Versionskontrolle mit GIT Dortmund Ansgar Brauner - GreenPocket GmbH - Köln

Leitfaden zur Installation von Bitbyters.WinShutdown

GeoPilot (Android) die App

DER BESSER INFORMIERTE GEWINNT!

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw,

Quickstep Server Update

Datensicherung und Wiederherstellung

Howto. Einrichten des TREX Monitoring mit SAP Solution Manager Diagnostics

Ubuntu Phone. Sujeevan Vijayakumaran. 8. November OpenRheinRuhr. oder auch: Er, dessen Name nicht genannt wird.

Beschreibung Regeln z.b. Abwesenheitsmeldung und Weiterleitung

Download unter:

COSA. Portal Client Installation JAVA J2SE / JRE Version 1.4.2_09, Stand Copyright

AGILE APPLICATION LIFECYCLE MANAGEMENT IM ATLASSIAN ECOSYSTEM

IMAP Backup. Das Programm zum Sichern, Synchronisieren, Rücksichern und ansehen von gesicherten Mails. Hersteller: malu-soft

Sage Customer View für Windows 8 Funktionen

OP-LOG

Bootapplikation ohne CODESYS laden

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

WOT Skinsetter. Nun, erstens, was brauchen Sie für dieses Tool zu arbeiten:

Anleitung zur Datensicherung und -rücksicherung in der VR-NetWorld Software

Moodle aktuell halten mit Git

Installation und Test von Android Apps in der Entwicklungs- und Testphase

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Technische Hinweise 7.2 FP1

Installationsvoraussetzungen

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren

Installation und Inbetriebnahme von Microsoft Visual C Express

Benutzeranleitung Service Desk Tool Erizone

A. Ersetzung einer veralteten Govello-ID ( Absenderadresse )

Urlaubsregel in David

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

Informationen zur Verwendung von Visual Studio und cmake

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

Benutzer und Rechte Teil 1

LabTech RMM. Monitoring von MDaemon. Vertraulich nur für den internen Gebrauch

Kurzanleitung zu. von Daniel Jettka

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Research Note zum Thema: Laufzeit von Support-Leistungen für Server OS

The ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung

Das Handbuch zu KNetAttach. Orville Bennett Übersetzung: Thomas Bögel

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

PCC Outlook Integration Installationsleitfaden

Sichern der persönlichen Daten auf einem Windows Computer

Installation von NetBeans inkl. Glassfish Anwendungs-Server

HOWTO Update von MRG1 auf MRG2 bei gleichzeitigem Update auf Magento CE 1.4 / Magento EE 1.8

Wiederkehrende Bestellungen. Tipps & Tricks

Im vorliegenden Tutorial erfahren Sie, wie Sie in myfactory Postfächer für den Posteingang und den Postausgang anlegen.

Leitfaden zur Nutzung des Systems CryptShare /Sicheres Postfach

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Einfu hrung in Subversion mit TortoiseSVN

Erstellen eines Screenshot

Hex Datei mit Atmel Studio 6 erstellen

Einführung in Subversion

Systemanforderungen TreesoftOffice.org Version 6.4

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Einrichtung einer Weiterleitung auf eine private Adresse in der Hochschule

Anleitung zur Webservice Entwicklung unter Eclipse

Bedienungsanleitung. FarmPilot-Uploader

-Verschlüsselung

Support-Ticket-System. - Anleitung zur Benutzung -

Transkript:

Kontinuierliche Integration am Beispiel Jenkins Sujeevan Vijayakumaran Ubucon, Berlin 20. Oktober 2012 1 / 25

Inhaltsverzeichnis 1 Über mich 2 Was heißt kontinuierliche Integration? 3 Test-Schnittstellen 4 Jenkins 2 / 25

Über mich Sujeevan svij Vijayakumaran Jahrgang 1992 wohnhaft Castrop-Rauxel Studium am IT-Center Dortmund (FH Dortmund) C++-Entwickler bei otris Software AG (Dortmund) Aktivität in FLOSS-Projekten: seit 09/2010: Ikhayateam ubuntuusers.de (Teamleiter) seit 09/2012: Redaktionsmitglied bei freiesmagazin 3 / 25

Was heißt kontinuierliche Integration? Zwei Grundsätze: 1 Integration 2 Kontinuierlich 4 / 25

Integration Einfügen des geänderten Quellcodes in das Ursprungsprojekt Einsatz von Versionsverwaltungssystemen wie Git, SVN, Mercurial etc. 5 / 25

Kontinuierlich Integration des neuen bzw. veränderten Quellcodes erfolgt in kurzen Abständen meist täglich Führt zum schnellen Erkennen von Fehlern im Quellcode Häufig wird dabei an Hand von Nightly Builds die kontinuierliche Integration getestet 6 / 25

Test-Schnittstellen 1 Unit-Tests 2 Integrations-Tests 3 System-Integration 7 / 25

Test-Schnittstellen Test-Schnittstellen für ein Apache-Module: Funktionsweise der Methoden z.b. in C++ HTTP-Schnittstelle z.b. mit Perl oder Python Skripte die HTTP-Requests abschicken 8 / 25

Beispiel: Testen am XML-Parser Einlesen eines RSS-Feeds (Eingabeobjekt): XML-Datei valide? XML-Datei wohlgeformt? Schreiben des RSS-Feeds (Ausgabeobjekt): Richtiger Pfad? Erwartungsgemäß geschrieben? 9 / 25

Jenkins Maintainer: Kohsuke Kawaguchi Entwickelt bei Sun unter dem Namen Hudson Nach Übernahme durch Oracle entstand der Fork Jenkins Programmiersprache: Java Plattformunabhängig unter MIT-Lizenz 10 / 25

Workflow in Jenkins 1 Auslösung 2 Ausschecken 3 Build-Vorgang 4 Post-Buildvorgang 11 / 25

Workflow in Jenkins Der Auslöser: Zeitgesteuert: bspw. jeder Tag um 18 Uhr. Eventgesteuert: Löse aus, wenn Vorgänger-Projekt erfolgreich. Änderung im Source-Code Manuell 12 / 25

Ausschecken des Quellcodes Das Repository (Git, SVN,... ) wird ausgescheckt. Auch checkout genannt. Der Quellcode wird dabei heruntergeladen. 13 / 25

Buildvorgang Das Projekt wird kompiliert. Die Tests werden ausgeführt. Sofern währenddessen ein Fehler auftritt, wird der Buildvorgang abgebrochen und geht in den nächsten Schritt über. 14 / 25

Post-Buildvorgang Bezeichnet alle Aktionen die nach einem Buildvorgang ausgeführt werden: Wenn erfolgreich: Bauen eines Paketes (deb, rpm,... ) Prüfen der Testergebnisse Setzen des Buildstatusses (Erfolgreich, Instabil, Fehlgeschlagen) Code-Analyse Versenden einer Benachrichtigung an die Entwickler (E-Mail, Jabber, IRC-Bot,... ) Trigger für mögliche Nachfolgende Jenkins-Jobs 15 / 25

Jenkins Was kann es noch? Build-Parametrisierung: Verschiedene CPU-Architekturen innerhalb eines Jenkins-Jobs Ausreizen der Möglichkeiten durch den Einsatz von Shell-Skripten Zahlreiche Anzahl an verfügbaren Plugins. 16 / 25

Ein Beispiel... Ein fiktives Projekt hat diverse Ansprüche: Durch Kontinuierliche Integration bzw testgetriebener Entwicklung soll eine gute Stabilität garantiert sein. Es soll sowohl unter Windows als auch unter den gängigen Linux-Distributionen funktionieren Möglichst jeden Sonntag soll es ein stabiles Release geben Die Dokumentation soll stets öffentlich zugänglich sein und auch aktuell gehalten sein, sie soll sowohl in HTML als auch als PDF verfügbar sein. Zudem wird ein Bugtracker gebraucht, in dem Nutzer Tickets erstellen können. 17 / 25

Das fiktive Beispiel Kontinuierliche Integration Als Versionsverwaltungssystem wird Git genutzt. Als Bugtracker wird Redmine genutzt. 18 / 25

Das fiktive Beispiel Bugtracking und Workflow Benutzer erstellt ein Bug-Report zu einem kleinen Fehler Programmierer korrigiert den Fehler zunächst und macht einen Commit in das Repository Danach wird ein Testfall zu dem Fehler geschrieben In der Commit-Nachricht wird auf das entsprechende Ticket verwiesen: Fixed Bug + Unit-Test. refs #1337 Im Ticket unter Redmine wird direkt auf das entsprechende Commit verlinkt. 19 / 25

Das fiktive Beispiel Plattformunabhängigkeit Für die kontinuierliche Integration wird Jenkins genutzt. Es werden hierfür zwei Jenkins-Jobs angelegt. Einmal für Windows und einmal für Linux Windows: Enthält vier Knoten: Windows Server 2012 mit Visual Studio 2012 und Windows Server 2008 R2 mit Visual Studio 2010, beide jeweils für 32-Bit und 64-Bit. Linux: 8 Knoten: SLES, RHEL, Debian, Ubuntu. Ebenfalls jeweils 32-Bit und 64-Bit. Echte benötigte Server: 2x Windows, 1x Jenkins-Host, 1x Jenkins-Slave Jenkins-Slave beinhaltet acht VMs mit den oben genannten Distributionen. 20 / 25

Das fiktive Beispiel Jenkins Build-Start: Täglich 19 Uhr Windows-Jenkins-Jobs laufen parallel an. Linux-VMs werden nacheinander per SSH hochgefahren und nach einem Lauf wieder heruntergefahren 21 / 25

Das fiktive Beispiel Wöchentliches Release Bei erfolgreichen Jenkins-Lauf werden installierbare Pakete geschnürt. Sofern der Sonntags-Lauf erfolgreich war, können die Pakete an das QS-Team übergeben werden. 22 / 25

Das fiktive Beispiel Dokumentation Bei erfolgreichen Jenkins-Lauf wird eine weitere Jenkins-Jobs ausgeführt Erzeugt HTML-Dokumentation und daraus auch eine PDF-Variante Erzeugnisse wird automatisch auf doc.project.name veröffentlicht Newsletter-Abonnenten werden über neue Version und Dokumentation informiert 23 / 25

Das fiktive Beispiel Danach fängt es alles wieder von vorne an. Und das meiste davon völlig automatisch! 24 / 25

Vielen Dank für die Aufmerksamkeit! Die Folien und Inhalte unterliegen (wenn nicht anders angegegen) der CreativeCommons Namensnennung-Weitergabe unter gleichen Bedingungen 3.0 Unported. Copyright 2012 Sujeevan Vijayakumaran 25 / 25