Webhook für Github in Jenkins erstellen

Datum

Wenn man seine Projekte per Jenkins baut kann man entweder von Hand auf den Build Knopf drücken oder alternativ einen Webhook einrichten, welcher automatisch nach jedem erfolgreichen push auf das Repo sich den aktuellsten Quellcode aus dem Repository zieht und gleich darauf selbstständig baut.

Vorbereitung

Um einen Webhook einzurichten benötigt man das SCM (SourceCodeManager) Plugin bzw. git und Github Plugins für Jenkins und ein Repo bei Github.

Sofern noch nicht vorhanden, erstellen wir ein neues (Freestyle)Projekt.
Nun kann man seine Paramter und ähnliche Dinge festlegen.
Auf der Seite des Prokekts befindet sich des weiteren ein Abschnitt Source Code Management. Hier trägt man nun alle benötigten Informationen ein, z.B. die URL des Repos, ggf. Zugangsdaten und Namen des entsprechenden git-branches.

Da es sich bei meinem Testrepo nur um ein Shellscript handelt, welches nur Strings ausgibt, soll dieses beim bauen ausgeführt werden.
Hierzu fügt man unter dem Punkt Build einen build step hinzu. In diesem Fall lautet dieser Execute Shell und dort tragen wir folgende Zeilen ein:

chmod +x testscript.sh
./testscript.sh

Diese machen das Script ausführbar und führen es anschließend aus.

Nun kann man dieses Projekt speichern und es sollte sich erfolgreich bauen lassen.

Einrichtung Webhook

In dem folgenden Beispiel nutze ich ein Repo, welches auf github.com liegt.
An dieser Stelle benötigen wir einen Personal Access token, welchen wir auf github.com unter:
Settings --> Developer settings --> Personal access tokens
erzeugen können.

Diesen Access Token muss man nun im Jenkins hinterlegen. Hierfür geht man auf dem Haupt-dashboard zu dem Menüpunkt Credentials und dort fügt man diesen Token als Secret Text hinzu und vergibt auch gleich einen entsprechenden Namen, damit der Token später auch wieder darüber aufgerufen werden kann.

Anschließend fügt man einen neuen github server in der Jenkins Konfiguration unter:
Manage Jenkins --> Configure System
hinzu. Hierbei ist nur die Angabe des Tokens unter dem Punkt Credentials notwendig.
Ob die Verbindung zu github.com funktioniert, kann man mit einen Druck auf den Knopf Test connection überprüfen. Zum Schluss speichert man die gemachten Einstellungen.

Nachdem das erledigt ist geht man wieder in die Konfiguration des Projektes und aktiviert die Option Github project wo man die URL des github-Repos aus dem Browser in das entsprechende Textfeld einträgt.

Bsp.: https://github.com/purfect/testrepo

Danach geht man zu den Build Triggers und aktiviert die Option GitHub hook trigger for GITScm polling

Nachdem man auch hier die Änderungen gespeichert hat sollte nach jedem push auf das Repo automatisch der entpsrechende build-Prozess starten.

Autor
Kategorien Automatisierung, Jenkins

PRTG Map