Mit dem neuen Blog wollte ich gleich noch andere Dinge ausprobieren. Nicht nur die neue Engine, sondern auch ein Weg des automatischen Deployments. Aber gehen wir mal Schritt für Schritt durch und fangen mit der Engine an.

Die Blog Engine

Wie schon im ersten Eintrag erwähnt habe, wagte ich mich wieder an etwas neues, an hugo. Das ist eine Engine, die mittels Markdown-Dateien statische Webseiten generiert und das auf der lokalen Umgebung. Wärend ich hier schreibe, läuft im Hintergrund der Hugo Server, gestartet in der Konsole mit

hugo server-D

und schon wird aus dem Verzeichnis heraus, wärend ich schreibe, die Webseite generiert. Auf Wunsch kann man das Ergebnis im Browser on the fly sehen. echt nice. Man muss nur noch Markdown-Formatierung verwenden, kein HTML und so ein Quatsch. Hugo an sich kann mit diversen Templates umgehen, die sich per git clone installieren lassen, auch nice. Nur die Templates sind jetzt nicht so der Brüller. Für mich sollte es aber hiermit erstmal reichen. Nachteil dabei ist allerdings, dass man dem git irgndwie sagen muss, dass man kein Submodul (Repo) verwenden möchte. Ich mache das, indem ich den .git Ordner des Templates einfach lösche.

Wenn man dann erstmal fertig ist möchte man die tollen Ergebnisse natürlich online haben. Ich mwerde das über ein FTP Upload machen, aber nicht profan mit einem FileZilla oder ähnlichem Tool, nein ich mache das natürlich mit einer Kanonen-Auf-Spatzen-Variante, mit Azure DevOps.

Deployment

Aber cool ist es dennoch irgendwie.

Was konkret hab ich gebaut? Ganz einfach. Mit meinem Windows Account habe ich mir eine Azure DevOps Organisation angelegt. Dort ein privates Repository erzeugt, das meine Blogdaten plus dem Template enthält. Dann richtete ich eine Pipeline ein, die aus zwei Schritten besteht. Einmal die Task Hugo für Azure DevOps und natürlich eine FTP Upload Task. In der Hugo Extension gebe ich nur den Pfad ein, wo meine ganzen Blogdaten liegen und den Pfad, wo das generierte Ergebnis abgespeichert werden soll. Wichtig war dabei zu beachten, dass der Build Agent unter Windows läuft, weil die Hugo-Extension eine Exe Datei ist. Als letztes habe ich der Pipeline gesagt, sie soll bei jeder Veränderung im git Repo getriggert werden. Fertig war meine CI/CD Pipeline.

Ergebnis

Ich schreibe, wären der Hugo Server lokal den Blogpost generiert. Wenn ich der Meinung bin, dass das Sergebnis okayish ist, führe ich an der Konsole meine drei git Befehle aus

git add .
git commit -m 'commit message'
git push

und einige Augenblicke später erscheint das Ergebnis online. YESS, so muss das

Tschöle popöle