Deployment
Deployment bezeichnet ganz allgemein den Vorgang, bei dem Software in einen von Usern nutzbaren Zustand verfrachtet wird. Im Kontext von web development bedeutet dies in aller Regel, dass Code und dafür notwendige Packages/Software auf einen Server hochgeladen bzw. installiert werden. Die Prozesse dafür können sich stark unterscheiden: Prinzipiell können alle Schritte von Hand erledigt werden, typischerweise kommen dafür aber verschiedene Mechanismen und Softwares zum Einsatz, die den Prozess mehr oder weniger stark automatisieren.
Bei Projekt Neptun erfolgt das Deployment über eine Kombination von GitHub-Aktionen und Ansible. Ohne zu stark darauf eingehen zu können, beschreibe ich hier die Schritte, die z.B. für das Deployen der vorliegenden Webseite erfolgen:
- Zuerst stelle ich sicher, dass ich im master branch bin (git checkout master bzw. entsprechende GUI-Funktion) und dass der aktuellste code commited und gepusht ist (git commit -a && git push)
- Dann generiere ich den changelog: Im root-Verzeichnis des Projekts "npm run release --next 'x.x.x'" ausführen.
- Mit der jetzt aktualisierten changelog.md-Datei commite und pushe ich erneut. Die commit-Message muss "release/x.x.x" lauten.
- Jetzt setze ich auf GitHub die Aktionen in Gang: Ich erstelle ein neues release, dessen Titel und Tag ebenfalls "x.x.x" sind. In den Beschrieb des releases kommt die entsprechende automatisch generierte Stelle aus dem changelog.md. Das deployment wird in Gang gesetzt.
- Jetzt lässt sich die Aktion mitverfolgen und ich drücke die Daumen. Falls das deployment fehlschlägt, analysiere ich die Fehler und behebe sie umgehend.