1

Ich versuche, einen TeamCity kontinuierlichen Integration und Bereitstellung Workflow mit einer Laravel-Anwendung mit Git für die Versionskontrolle einrichten, aber die Art, wie ich es geschafft habe, fühlt sich hacky.TeamCity kontinuierliche Integration mit Git-Deployment, PHPUnit-Tests und Datenbankmigration

Was ich gerade habe, ist ein TeamCity-Build mit einem Auslöser für einen Push in den Entwicklungszweig. Ich habe drei Build-Ereignisse eingerichtet, die ssh auf dem Staging-Server dann git den Code ziehen, führen Sie Artisan migrieren dann führen Sie die PHPUNIT-Tests.

In jedem Build-Event muss es ssh an den Staging-Server, cd an das Verzeichnis und führen Sie dann die Aktion, die nicht richtig scheint, darüber hinaus, wenn etwas schief geht wie die phpunit Tests fehlgeschlagen, gibt es keine Möglichkeit zum Rollback leicht. Also, was genau ist der richtige Weg, ich habe versucht zu recherchieren, aber kann nichts finden, was tatsächlich erklärt, wie Sie git für die Bereitstellung der Live-Code verwenden würden, würden Sie sogar Git für die Bereitstellung verwenden?

Antwort

0

Sie können Git für Ihre Bereitstellung verwenden, aber ich würde das nicht empfehlen. Sie sollten etwas verwenden, das speziell für die Bereitstellung einer gepackten Anwendung wie OctopusDeploy eingerichtet wurde. Das Verfahren würde wie folgt aussehen:

  1. Auslöser Ihre Teamcity Build von Änderungen in Git
  2. Teamcity in Schritten durch die Build geht - bekommt Änderungen, baut, führt Tests, Pacakges, schiebt Paket Deployment-Server (oder ausführt so etwas wie msdeploy)
  3. Deployment Server nimmt Ihr gezipptes/NuGet-Paket und stellt es für jede Ihrer Umgebungen bereit (Beta, Staging, Produktion).