Deployment mit Typo3-Surf und DDEV

Folgend wird beschrieben, wie ein neues Projekt mit DDEV und Typo3-Surf aufgesetzt wird:

  1. Neues Repo anlegen.
  2. Die Branches "master" und "develop" anlegen und pushen.
  3. In den Branch "develop" wechseln und darin nun vorerst arbeiten.
  4. Das Repo von dem DDEV-Dummy auschecken.
  5. Den Pfad des ausgecheckten DDEV-Dummy zum neuen Repo umschreiben.
  6. Configs anpassen: (Leider noch sehr viele Stellen, dass muss nochmal angepasst werden!)
    1. .ddev/config.yaml
    2. Build/Deployment/develop.php anlegen
    3. Build/Deployment/shared/Configuration/AdditionalConfiguration.hp anpassen
    4. config/sites/config.yaml
  7. Neues Repo mit den DDEV-Dummy comitten (develop) und pushen.
  8. In Terminal ddev composer install ausführen.

  9. Im Terminal ddev start ausführen.

  10. Entwicklung starten. (Am besten immer in einem neuen Branch)

Zum Deployen muss folgdender Befehl ins Terminal eingegeben werden (Dafür muss man sich im Build/Deployment-Verzeichnis befinden):

DEPLOYMENT_SOURCE=branch:develop ../../bin/surf deploy develop -v
 

Folgendes funktioniert noch nicht richtig:

  1. Der Shared-Ordner funktioniert noch nicht richtig. Dementsprechend muss folgendes noch seperat ausgeführt werden:
    1. Die AdditionalConfiguration muss noch zum Start einmal seperat rüber kopiert werden.
    2. Der Fileadmin muss von der letzten Version kopiert werden

Typo3 Surf Deployment

In dem Basis-Dummy-Projekt befindet sich im Hauptordner der Ordner „Build/Deployment“. Dieser ist für das Deployment mit Typo3-Surf wichtig. Folgende Struktur ist in diesem Ordner gegeben:

  • .surf
  • shared
  • src

Ordnerstruktur

.Surf

Im .Surf-Ordner befinden sich die Konfigurationsdateien. Die Zugangsdaten von den Projekten dürfen NIEMALS im GIT gespeichert werden. Damit aber die Struktur der Datei nicht aus anderen Projekten kopiert werden, sind *.example.php-Dateien im Repository gespeichert. 

Shared

In diesem Ordner werden alle Dateien abgelegt, die mit den Servern geteilt werden sollen.

src

Im Src-Ordner werden die benötigten Klassen für das Deployment hinterlegt. Diese können auch je Projekt angepasst werden.

Konfigurationen anlegen / Deployment einrichten

Für jede Umgebung, die nicht die lokale Instanz ist, muss eine Konfigurationsdatei angelegt werden. Standardmäßig gibt es die folgenden beiden Instanzen, die es für jedes Projekt gibt:

  • develop
  • master

Für beide Fälle liegt eine Beispiel-Datei im GIT (develop.example.php / master.example.php). Es kann von den Beispielen-Dateien abgewichen werden, wenn die Umgebung es voraussetzt.

Die Variablen, die unter dem Kommentar-Kopf ``////// Config ///////`` stehen, sollten angepasst werden.

 

Ordnerstruktur auf dem Server

Unter shared liegen die geteilten Medien (z.B. fileadmin).

Unter releases liegen die letzten 5 Versionen. Unter relaeses/current ist der aktuelleste mittels Symlink verlinkt.