1 / 28

Buildprozesse mit Perl

Buildprozesse mit Perl. Inhalt. Build Prozesse Daily Build Verfahren für erfolgreiche Continuus Projekte Generelles Vorgehen zur Einrichtung Einsatz von Perl Zusammenfassung. Ziel dieses Vortrages.

Download Presentation

Buildprozesse mit Perl

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Buildprozesse mit Perl

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

  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 Makeprozessz.B. Über Unix-Make, GNU-Make o.ä. Die verwendete Programmiersprache spielt dabei keine Rolle. Build Prozesse mit Perl http://www.riecon-it.de

  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 Build Prozesse mit Perl http://www.riecon-it.de

  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. Build Prozesse mit Perl http://www.riecon-it.de

  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 Build Prozesse mit Perl http://www.riecon-it.de

  7. Umgebung für Build Prozesse Die in diesem Vortrag besprochenen Verfahrenwurden 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. Build Prozesse mit Perl http://www.riecon-it.de

  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. Build Prozesse mit Perl http://www.riecon-it.de

  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 Build Prozesse mit Perl http://www.riecon-it.de

  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 Build Prozesse mit Perl http://www.riecon-it.de

  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 !!! Build Prozesse mit Perl http://www.riecon-it.de

  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) Build Prozesse mit Perl http://www.riecon-it.de

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

  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 abarbeitetund die Ergebnisse in ein Log-File schreibt. Build Prozesse mit Perl http://www.riecon-it.de

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

  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) Build Prozesse mit Perl http://www.riecon-it.de

  17. Nightly: • 1. Reconfigure Daily Build im Überblick PWE 1 ... ContinuusDB PWE n PWEBuild Mgt. Exe / Libs • 2. Build • 3. InfoIntranet Build Prozesse mit Perl http://www.riecon-it.de

  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 Build Prozesse mit Perl http://www.riecon-it.de

  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 Build Prozesse mit Perl http://www.riecon-it.de

  20. Was wird benötigt? (1) • Scripte nicht nur für den Full Build erstellenFull 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 Build Prozesse mit Perl http://www.riecon-it.de

  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 Build Prozesse mit Perl http://www.riecon-it.de

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

  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 = <INFO>; # in Array einlesen • close(INFO); # File schliessen • print @lines; # Array ausgeben Build Prozesse mit Perl http://www.riecon-it.de

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

  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"; • } Build Prozesse mit Perl http://www.riecon-it.de

  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 Build Prozesse mit Perl http://www.riecon-it.de

  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 Build Prozesse mit Perl http://www.riecon-it.de

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

More Related