UNSERE ENTWICKLUNGSUMGEBUNG FÜR OXID-SHOPS

Das Thema Deployment/Entwicklungsumgebung wird auf Treffen und Barcamps oft diskutiert, deshalb stellen wir gerne unseren internen Workflow mal vor:

  1. Alle Shoprepositories sind bei Bitbucket gehostet.
  2. Die Shopentwickler haben alle lokale Apaches laufen, haben aber nur einen lokalen shared MySQL-Server.
  3. Die Shopentwickler klonen von Bitbucket und richten lokale Hostnames ein, z.B. http://MYSHOP => /Users/dh/Sites/MYSHOP
  4. die config.inc.php-Dateien fragen den Hostnamen ab, und je nachdem ob lokal oder stage/live, werden die MySQL-Verbindungsdaten entsprechend ausgetauscht.
  5. Die Repos haben meistens zwei Branches: „stage“ und „live“. Wenn wir Anpassungen vornehmen, erstellen wir meistens einen neuen Branch (von live abgeleitet) z.B. ’navigation-bugfix‘.
  6. Wenn fertig, mergen wir ’navigation-bugfix‘ in den ’stage‘ Branch und pushen den Branch zu Bitbucket.
  7. http://stage.myshop.de/ zeigt in den Server-Ordner /htdocs/stage.myshop.de/ und ist auch ein git-Klon des BitBucket-Repos (branch ’stage‘). Auf dem Stage-Server wurde einmalig ssh-keygen aufgerufen und der SSH-Key als BitBucket Deployment Key in dem MYSHOP-Repo hinterlegt. Der Stage-Server hat somit Read-Only Zugriff auf das BitBucket Repo.
  8. Wenn neue Features getestet werden sollen, rufen wir http://stage.myshop.de/tools.php auf. tools.php ist eine einfache PHP-Datei mit IP-Schutz, die den git Befehl „git pull origin stage“ aufruft, um automatisch den aktuellen Branch auszuchecken.
  9. Nach dem auschecken löschen wir den Shopcache und können die neuen Änderungen testen.
  10. Wenn alles passt, wird der Branch in ‚live‘ gemergt und wieder mit tools.php aktualisiert.
  11. Module verwalten wir mit einer Mischung von composer und ioly. d.h. /modules/ ist meistens von der Versionierung ausgeschlossen. composer.json, composer.phar und composer.lock werden alle committed und tools.php bietet auch eine Möglichkeit composer serverseitig durchlaufen zu lassen. Die ioly-Module committen wir einfach mit git add -f /modules/myiolymodule/*.
0 Kommentare

Dein Kommentar

An Diskussion beteiligen?
Hinterlasse uns Deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.