CI selbst hosten mit Drone

 · 1 min read

Ich betreibe ja mein eigenes Git auf dem unteranderem auch der Source Code für diese Seite hier liegt. Aber wie genau baue ich diese den zusammen? Also mal ein wenig Kontext. Ich benutze Jekyll für meine Webseite, dieses baut mir wenn ich im lokalen Terminal die entsprechenden Befehle eingebe meine Webseite zusammen. Aber da man das ja nicht selber machen will, muss man sich also eine Lösung suchen. Diese Lösung heißt für mich Drone.io.

Drone ist ein selbst hostbares CI auf Docker Basis. Die Installation ist denkbar einfach, die docker-compose.yml anpassen und fertig. Meine sieht so aus:

Habt ihr Drone dann also gestartet und so konfiguriert dass es mit euerem Git System funktioniert - in meinem Fall ja also Gitea -, dann kann es auch schon losgehen. Nachdem man sich also in Drone eingeloggt hat muss man nur die Repository aktivieren. Ist diese aktiviert ist das letzte was zu tun ist noch die .drone.yml in der Git Repository erstellen. Diese sieht dann so aus:

Am Ende des Tages macht Drone nichts anderes als den Git Code zu downloaden, dann einen Jekyll Cache wiederherzustellen um dann mit Jekyll den Build Command ausführen. Der Cache ist dafür wichtig sodass die Build Stage nur 10 Sekunden anstatt von Minuten dauert. Am Ende lasse ich den Cache dann neu bauen und das Ergebnis per FTP hochladen, und natürlich darf eine E-Mail über den Status auch nicht fehlen. Die Configs habe ich auch noch mal zum Download auf der Downlaod Seite bereit gestellt diese findet ihr hier