Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl.

Ähnliche Präsentationen


Präsentation zum Thema: "Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl."—  Präsentation transkript:

1 Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl

2 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 2 Inhalt áBuild Prozesse áDaily Build Verfahren für erfolgreiche Continuus Projekte áGenerelles Vorgehen zur Einrichtung áEinsatz von Perl áZusammenfassung

3 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 3 Ziel dieses Vortrages Aufzeigen eines möglichen Lösungsansatzes, für Buildprozesse ohne die Verwendung von Continuus Object Make Voraussetzung: Für einzelne Komponenten des Software Produktes existiert ein Makeprozess z.B. Über Unix-Make, GNU-Make o.ä. Die verwendete Programmiersprache spielt dabei keine Rolle.

4 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 4 Build Prozesse Definition: Build Prozesse sind automatisierte Abläufe, um aus Sourcen ein Software-Produkt zu erstellen. Es wird zwischen zwei Verfahren unterschieden: Mit Continuus Object Make Ohne Object Make

5 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 5 Full/Partial Build Full Build Der komplette Buildprozess wird durchlaufen. Jede Source wird neu compiliert, alle Bibliotheken des Produktes neu erstellt und das Produkt neu gelinkt. Partial Build Nur Teilprodukte werden neu erstellt. Für eine Fehlerbehebung wird z.B. nur eine Bibliothek neu übersetzt und zum Produkt neu hinzugelinkt.

6 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 6 Mögliche Probleme Full Build - Sicherste Methode, ein Produkt zu erstellen! - Zeitfaktor - Im Fehlerfall kein Full Build möglich Partial Build - notwendig für Fehlerbehebung u. Tests - Inkonsistenzen und dadurch Produktfehler - Sofern nicht unter Config. Management, nicht mehr nachvollziehbar

7 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 7 Umgebung für Build Prozesse Die in diesem Vortrag besprochenen Verfahren wurden im Client-Server Umfeld erfolgreich getestet. Betriebssysteme: Unix-Derivate, NT Vorzugsweise werden Build-Verfahren unter Unix realisiert, da hier über Cronjobs und der Shell- Umgebung einiges automatisiert werden kann. Bei reinen NT Entwicklungen ist der Einsatz problematischer, aber möglich.

8 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 8 Daily Build Verfahren für erfolgreiche Continuus Projekte Daily Build bedeutet... das Projekt ist täglich in der Lage, das Produkt komplett neu zu erstellen.... täglich zu wissen, wo das Projekt steht... sich möglichst früh auf den Tag der Auslieferung vorzubereiten.

9 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 9 Daily Build als Erfolgsfaktor (1) Tägliche Prüfung der Einstellung der Reconfigure Properties der Entwickler-Disziplin von Abhängigkeiten der Integration der Sourcen (Integrationstest) des Projekt-Standes

10 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 10 Daily Build als Erfolgsfaktor (2) Tägliche Bereitstellung eines neuen Produktes für Systemtests von Informationen –zur Buildfähigkeit des Produktes oder Teilen davon –zu Konflikten aufgrund parallel checkin o.ä. –zu Inkonsistenzen aufgrund fehlerhaft eingecheckter Sourcen –Problemzonen (bestimmte Bibliotheken o.ä.) z.B. Liste behobener Fehler

11 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 11 Daily Build als Erfolgsfaktor (3) Nutzung von Rechenzeit bei Build über Nacht (Nightly Build) vorteilhaft bei Datenbank-Anwendungen Sicherheit für den Tag X !!!

12 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 12 Generelles Vorgehen zur Einrichtung 1. Prüfung des Makeprozesses 2. Automatisierung - Build für das ganze Produkt z.B. mit Perl 3. Verknüpfung des automatischen Build mit Continuus 4. Bereitstellung von Build-Ergebnissen z.B. über Intranet (optional)

13 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 13 Makeprozess Bsp.: Abhängigkeiten bei einer C Entwicklung Local Dev. 1 Env. Local Dev. n Env. Global Dev. Env. Bei vorhandenen Libs und Headers -> local make Ansonsten Zugriff auf Globale Umgebung (Lib- u. Headerverzeichn.) Make Build Env. Reconfigure Make

14 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 14 Automatisierter Build Warum Perl? Einfache und mächtige Scriptsprache. Ideal zum Starten von Prozessen und Auswerten von ASCII-Log Files. CGI-Scripte Verfügbarkeit: NT / Unix Mögliches Verfahren: Perl-Script, welches einzelne Makeprozesse nacheinander abarbeitet und die Ergebnisse in ein Log-File schreibt.

15 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 15 Verknüpfung mit Continuus Erstellung einer Ablaufsteuerung, welche folgendes durchführt: 1. Aktualisieren der Sourcen für die Build Umgebung Reconfigure und nachfolgender Sync auf einem getrennten Continuus Build/Prepared Projekt 2. Ausführung des automatisierten Builds 3. Auswerten und Aufbereiten der Daten für das Intranet

16 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 16 Bereitstellen von Build- Ergebnissen Mögliche interessante Informationen: Welche Bibliotheken wurden nicht gebaut u. warum –Liste Good/Bad Libs –Liste unsatisfied Symbols (z.B. bei C-Projekten) Welche Sourcen/Versionen haben zum Produkt geführt Welche Fehler sind im aktuellen Produkt behoben (Unter der Voraussetzung, daß PT eingesetzt wird)

17 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 17 PWE 1 PWE n Continuus DB...... PWE Build Mgt. Exe / Libs Nightly: Daily Build im Überblick 2. Build 1. Reconfigure 3. Info Intranet

18 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 18 Einsatz von Perl Ich empfehle den Einsatz von Perl, da mit geringfügigen Modifikationen auch unter NT lauffähig Modularisierbar (z.B. Module für Continuus Funktionen, Make, Auswertung) Große Funktionsvielfalt schon vorhanden

19 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 19 Was muß bei der Umsetzung beachtet werden? Möglichst früh Funktionsbibliotheken anlegen Sauberer Programmierstil (mit Perl kann so programmiert werden, daß man zwei Tage später den eigenen Code nicht mehr lesen kann!) Dokumentation (Kommentare, Beschreibungen) Schrittweises Vorgehen(Bottom Up) Zuerst kleine Teilprozesse automatiseren

20 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 20 Was wird benötigt? (1) Scripte nicht nur für den Full Build erstellen Full Build bedeutet Best Case Automatismen für Partial Builds - Wie kann mitten im Prozess gestartet werden? - Sollen manuelle Eingriffe möglich sein? - Steuerung über Optionen Release-Verwaltung - Sichern von Projekten, Folder und Tasks - Releasen von Projekten

21 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 21 Was wird benötigt? (2) Kopieren von Source Bäumen - über Continuus (Reconfigure und Sync Workarea) - ggf. ohne Continuus aus einer Workarea, evtl. einfacher, da immer aus der Build-Umgebung Erstellung von Testumgebung - Kopieren der Sourcen, Executables - Debugvorbereitungen

22 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 22 Was wird benötigt? (3) Auswertung der Logfiles –Fehlerhafte Teilprodukte (Übersichten) –Konkrete Fehlermeldungen der Teilprodukte –Mögliche Behebungshinweise z.B. Unsatisfied Symbol wird von Bibliothek xyz aufgerufen Bereitstellung einer Liste aller Sourcen und zugehöriger Versionen

23 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 23 Beispiel eines Perl- Programmes Das folgende Perlprogramm liest ein File und gibt den Inhalt des Files aus. #!/usr/local/bin/perl # $file = '/etc/passwd';# Filename zuweisen open(INFO, $file);# File öffnen @lines = ;# in Array einlesen close(INFO);# File schliessen print @lines;# Array ausgeben

24 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 24 Commandline Interface und Perl (1)..... # Continuus starten ccm_start(); ######## Reconfigure ausführen update_workarea ($proj_name, $rep_file); ######## # Continuus stoppen ccm_stop();

25 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 25 Commandline Interface und Perl (2) sub update_workarea { my ($PROJ_NAME)=$_; print REP_FILE `ccm reconfigure -r -p $PROJ_NAME`; print "Reconfigure beendet !!!\n"; print REP_FILE `ccm sync -p $PROJ_NAME`; print "Sync beendet !!!\n"; print " F E R T I G !!!\n"; }

26 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 26 URLs zu Perl http://www.perl.org http://www.cpan.org http://www.perlarchiv.de/perl/index.shtm http://perl.miningco.com/compute/perl/ http://www.ibriker.de

27 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 27 Zusammenfassung Positive Effekte durch Einsatz von Daily Build Verfahren Bessere Produktqualität –Durch tägliche Builds und Tests Schnelle Produktzyklen –Da täglich ein neues Produkt vorliegt Geringere Kosten –Der Aufwand für die Einrichtung von Daily Build Prozessen zahlt sich aus! –Schnelle Fehlerbehebung möglich Mehr Sicherheit –Fallback-Lösung, z.B. Stand letzter Tag

28 Build Prozesse mit Perl http://www.riecon-it.de Folie Nr. 28 Vielen Dank für Ihre Aufmerksamkeit Noch Fragen ?


Herunterladen ppt "Daily Build Verfahren für erfolgreiche Continuus Projekte 1 Buildprozesse mit Perl."

Ähnliche Präsentationen


Google-Anzeigen