Das Thema Deployment/Entwicklungsumgebung wird auf Treffen und Barcamps oft diskutiert, deshalb stellen wir gerne unseren internen Workflow mal vor:
- Alle Shoprepositories sind bei Bitbucket gehostet.
- Die Shopentwickler haben alle lokale Apaches laufen, haben aber nur einen lokalen shared MySQL-Server.
- Die Shopentwickler klonen von Bitbucket und richten lokale Hostnames ein, z.B. http://MYSHOP => /Users/dh/Sites/MYSHOP
- die config.inc.php-Dateien fragen den Hostnamen ab, und je nachdem ob lokal oder stage/live, werden die MySQL-Verbindungsdaten entsprechend ausgetauscht.
- 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’.
- Wenn fertig, mergen wir ‘navigation-bugfix’ in den ‘stage’ Branch und pushen den Branch zu Bitbucket.
- 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.
- 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.
- Nach dem auschecken löschen wir den Shopcache und können die neuen Änderungen testen.
- Wenn alles passt, wird der Branch in ‘live’ gemergt und wieder mit tools.php aktualisiert.
- 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/*.
The post Unsere Entwicklungsumgebung für OXID-Shops appeared first on Planet OXID.