Tagebuch unserer IDE Nummer 6
Hallo liebe Besucher,
heute wollen wir unseren automatischen Release-Prozess beginnen. Was wir erreichen wollen ist folgendes :
- Export unserers Projektes aus Subversion
- Entfernen nicht benötigter Dateien
- Handlich als .zip verpacken
- Anlegen PHPDoc
- Prüfung mit CodeSniffer
- Ausführen Unittests falls vorhanden
Wir werden uns in diesem Teil allerdings nur mit den Vorbereitungen beschäftigen, mehr ist an einem Abend fast nicht drinnen, außer man hat kein Privatleben 😉
Phing selber läuft ja hoffentlich bereits bei euch, falls nicht solltet ihr noch einen Blick auf den Teil 5 unserers Tagebuches werfen.
Wir gehen jetzt einfach davon aus das ihr bereits erste Projekte im Subversion angelegt habt, falls nicht besorgt euch für euren Client Tortoise damit sollte es euch nicht schwerfallen Projekte auf einem SVN Server zu erstellen (Tutorial auf Deutsch zu Tortoise) . Der Knackpunkt dürfte in diesem Fall vielleicht ehr sein, dass ihr gar keinen SVN Server habt.
Wir können empfehlen wenn ihr keine geheimen Projekte entwickelt einen kostenlosen Dienst von Google in Anspruch zu nehmen : http://code.google.com dort könnt ihr euch ein Projekt anlegen welches auch nebenbei gleichzeitig Unterstützung für Subversion bietet (FAQ Subversion bei Google).
Für die Nutzung von Phing brauchen wir als erstes mal ein neues Directory auf unserem Server (Freigeben für den Client) wo wir unseren erzeugten Build + Tempfiles ablegen können. Unser Server liegt auf einer eigenen Partition (F:) wo wir nun ein Directory Builds erzeugen.
Unsere eigentlichen Entwicklungen befinden sich logischerweise im ./htdocs Directory des Servers, sonst könnten wir ja nichts testen 🙂 Dort müssen wir jetzt ein XML File anlegen welches Phing sagt was es tun soll. Phing macht im Prinzip nichts weiter als dieses XML File zu lesen und alle enthaltenen Befehle zu starten, ähnlich einer Batchdatei. Man könnte die ganzen Sachen die wir nun behandeln auch händisch durchführen, nur beim 10x hat man dazu keine Lust mehr !
Neben dem XML File brauchen wir auch noch eine Datei mit Einstellungen , diese enthält unseren Zugang zum Subversion und die URL zum Projekt auf dem Subversion Server. So können wir am Ende das XML File für jedes unserer Projekte nutzen und müssen nur das File mit den Einstellungen entsprechend anpassen.
Beginnen wir mit der Datei für die Einstellungen, wir bezeichnen diese mit : build.properties und legen jene in das gleiche Directory wo sich auch unser Projekt befindet.
Als Inhalt fangen wir wie folgt an :
# Username
user=xx# Password
password=xxr# Repository
repository = „xx“# Build-Directory
build-dir = Builds
Ich denke das ist selbsterklärend, Name & Password für den SVN Server sowie die Url. Die letzte Einstellung ist das Directory wo unser Päckchen landet.
Hier erstellen wir nun auch eine Datei mit dem Namen build.xml wo wir später die benötigten Befehle für Phing ablegen. Die ersten Zeilen wollen wir als Abschluss für Heute noch eintragen.
<?xml version=“1.0″?>
<project name=“Projekt“ default=“dist“ basedir=“.“>
<property file=“./build.properties“ />
<target name=“prepare“>
<delete dir=“/${build-dir}/release“ />
<delete dir=“/${build-dir}/src“ />
<delete dir=“/${build-dir}“ /><mkdir dir=“/${build-dir}“ />
<mkdir dir=“/${build-dir}/release“ /></target>
<target name=“export“ depends=“prepare“>
<svnexport
svnpath=“svn“
username=“${user}“
password=“${password}“
repositoryurl=“${repository}“
todir=“/${build-dir}/src“
/></target>
Am Anfang steht die XML Version, der Name unseres Projektes und Informationen für Phing wo sich das File mit den Einstellungen befindet.
Alle Aktionen bei Phing werden als „Targets“ bezeichnet, man könnte auch Tasks sagen. Die ersten beiden die wir erstellt haben sorgen dafür das die Directorys geleert werden und das Projekt aus dem Subversion exportiert wird.
Alles weitere dann im nächsten Teil. Fragen beantworten wir wie immer gerne (Kommentare!).
Neue Kommentare