Auf dem stark nachgefragten Markt der Webentwicklung ist die Verwendung von CI sehr vorteilhaft und fast schon eine Voraussetzung (heutzutage).
Wir verwenden TeamCity, YouTrack, Perforce und PHP Maven zum Erstellen, Verpacken und Bereitstellen unserer Webanwendungen. Das Setup ist wie folgt:
- Nach der Entwicklung wird der Code in den Hauptordner des Perforce-Repositorys für die Anwendung übertragen
- TeamCity ist so konfiguriert, dass es diesen Ordner auf Änderungen überprüft und jedes Mal, wenn Änderungen gefunden werden, einen Build durchführt (siehe Konfigurieren von TeamCity)
- Sobald die Entwicklung einen Punkt erreicht hat, an dem sie bereitgestellt werden kann, integrieren wir den Hauptzweig in den Versionszweig
- TeamCity ist so konfiguriert, dass es den Versionszweig auf Änderungen überprüft und per FTP auf dem Server bereitstellt
- Cron-Jobs laufen auf der Anwendung, um neue Versionen in einem QA-Zweig bereitzustellen
- Sobald die Änderungen und die Funktionalität überprüft sind, wird der Status der QA-Bereitstellung auf "Bereitstellen" gesetzt.
- Ein weiterer Cron-Job sucht nach neuen QA-Releases, die bereit für die Bereitstellung sind. Sobald er sie gefunden hat, extrahiert er das Paket in den Live-Ordner
In diesem Fall befinden sich unsere PROD- und QA-Ordner auf demselben Server. Alternativ können Sie mehrere TeamCity-Build-Konfigurationen haben, die die App auf verschiedene Server übertragen (oder eine TeamCity-Umgebungsvariable verwenden).
Wenn wir Tickets/Probleme in YouTrack schließen, können wir auch die Build-Informationen aus TeamCity abrufen, da sie miteinander interagieren.
Links:
Konfigurieren von TeamCity, Maven für PHP für die kontinuierliche Erstellung von Joomla: http://www.waltercedric.com/joomla-mainmenu-247/continuous-build/1552-configuring-teamcity-maven-for-php-for-joomla-continuous-build.html