Die Technik dahinter

Die Technik hinter diesem Code-Repository ist in mehrere Komponenten aufgeteilt:

Die Webseite

Die Webseite ist eine sehr simple PHP-Website. Ohne objektorientierte Features.

PHP wird auf dieser Seite größtenteils für Includes und kleinere Funktionen (Status von Hudson prüfen, Dateilisten erzeugen etc.) verwendet.

Code-Repositories

Der gesamte Code den es hier gibt wird in Subversion Repositories gepflegt. Älterer Code der aus historischen Zwecken da ist wird in einem gemeinsem Repository gepflegt. Aktuellere Projekte die weiterhin gepflegt werden haben ein eigenes Repository. Allerdings sind diese Repositories noch nicht online Verfügbar.

Deployment

Das Erzeugen der Apidoc-Seiten, der Source-Seiten (*.phps) und der Download-Archive ist mit Phing automatisiert. Das jeweilige Build-Skript von Phing wiederum wird in einem Hudson-Job ausgeführt. Hudson ist ein sehr einfach zu bedienender Continious Integration Server welcher so nette Features bietet wie: Reports aus Unittests, Syntax-Check und generierte Apidocs direkt zu visualisieren und Trends anzuzeigen.

Meine Hudson-Jobs für diese Seite updaten den Code aus dem jeweiligen Repository und führen den Phing-Build aus. Danach sammelt Hudson die Reports, falls vorhanden, und visualisert sie. Im nächsten Schritt werden die erzeugten Artefakte per SCP auf diese Seite kopiert.

Da mein Hudson-Server momentan noch lokal zu hause läuft ist er nicht permanent erreichbar: Svens Hudson offline

UML-Verteilung

Damit man sich das ganze vielleicht besser vorstellen kann, hab ich ein UML- Verteilungsdiagramm mit obigen Komponenten erstellt:

Komponentenverteilung