GitHub Actions - AsciiDoctor und Jekyll mit GitHub Pages verwenden

Diese Seite wird mit Hilfe von Jekyll generiert. Neue Blog-Einträge schreibe ich im AsciiDoc-Format, das einige Möglichkeiten der Formatierung bietet. So ist z.B. das Einbinden von Code-Beispielen sehr einfach und das Syntax-Highlighting wird während der Generierung der HTML-Seiten automatisch erledigt.

Da GitHub Pages die Generierung auf Basis von AsciiDoc nicht unterstützt, musste ich bisher die Seiten auf meinem Rechner generieren lassen und anschließend manuell ins Repository auf den Branch gh-pages pushen. Ein unnötig komplizierter Prozess.

Durch GitHub Actions (aktuell noch Beta mit Einladung) ist das nicht mehr nötig. Die Action jekyll-action funktioniert durch einen Fehler aktuell zwar nicht. Aber da man die Action im eigenen Repository anpassen kann, waren nur wenige Anpassungen nötig, bis das automatische Pushen funktionierte. Diese Änderungen sind in meinem Blog-Repository zu finden. Dabei war die größte Herausforderung herauszufinden, wie man das Erzwingen eines Pushs vermeidet, weil sonst die Änderungen nicht wirksam werden. Das Problem habe ich durch löschen aller alten Dateien und dem Hinzufügen der generierten Dateien gelöst.

Durch GitHub Actions können Dockerfile- oder Javascript-Dateien ausgeführt werden. Die jekyll-action stellt dafür ein Dockerfile zur Verfügung durch das das Skript entrypoint.sh ausgeführt wird.

Die Action besteht aus zwei Dateien:

Die Definition eines Workflows erfolgt bei mir in der Datei main.workflow im Verzeichnis .github. Wenn man diese Datei dann direkt bei GitHub zur Bearbeitung öffnet, können dort andere Secrets oder Umgebungsvsriablen abgelegt werden.

So ist es nun möglich, einen neuen Blog-Eintrag zu schreiben, sie ins Repository in den Branch master zu pushen und nach wenigen Minuten ist der Blog-Eintrag online. Das macht es sehr einfach unterwegs neue Blog-Einträge zu schreiben und zu veröffentlichen.

Aktuell gibt es noch ein Problem mit der automatischen Veröffentlichung: Unter "Settings" wird im Bereich "GitHub Pages" eine Fehlermeldung angezeigt. Wenn man dann unter "Source" den Branch von "gh-pages branch" zu "master branch" wechselt, und das wieder rückgängig macht, ist die Fehlermeldung weg und die Seite ist aktuell. Den GitHub-Support habe ich darüber informiert, aber noch keine Rückmeldung erhalten.

Und natürlich lassen sich Dank Docker noch viele andere Dinge automatisieren.

Update (09.10.2019): Der GitHub-Support sagt, dass man ein "Personal access token" benötigt. Dies kann in den Einstellungen des Benutzerkontos (Settings → Developer Settings → Personal access tokens) angelegt werden. Anschließend muss dieses Token als Secret in den Einstellungen des Repositories mit dem Namen JEKYLL_PAT abgelegt werden.

Update (20.12.2019): Ich biete an, den Blog für euch einzurichten. Schaut unter Fiverr vorbei.


Kommentare oder Kontakt gern über Twitter oder die anderen Plattformen.