Automatisches Deployment eines Jekyll Projektes

Die meisten (oder sind es sogar alle?) meiner statischen Webseiten erstelle ich mit Jekyll und hoste den Code auf GitHub (diese Webseite z.B. auf github.com/wintermeyer/www.wintermeyer.de). Als Webserver benutze ich Nginx auf einem Debian Server (entweder in einem RZ in Frankfurt oder Bremen). Alle statischen Seiten müssen logischerweise erst gebaut und dann per rsync auf den Server kopiert werden.

Früher hatte ich im Unterverzeichnis jekyll/ das Jekyll Projekt und im Unterverzeichnis bin/ ein Deployment-Bash-Skript, das ich manuell auf meinem Entwicklungssystem angestoßen habe. Aber noch schöner und weniger fehleranfällig ist es natürlich, wenn das Deployment vom CI-Workflow automatisch nach einem Commit auf GitHub ausgeführt wird. Ich habe eine entsprechende GitHub-Action programmiert. Hier ist das Skript: deploy.yml

Man muss die folgenden (hoffentlich selbsterklärenden) GitHub-Secrets konfigurieren:

  • SSH_PRIVATE_KEY
  • SERVER_IP
  • SERVER_USER
  • DEPLOY_PATH

Viel Spaß!

PS: Alle Seiten werden automatisch minimiert und sowohl als gzip als auch als Brotli-Variante komprimiert. Wenn man eh schon dabei ist, kann man es auch performant machen (#webperformance).