Jenkins läuft auf localhost. Ich habe mein Repository in GitHub. Ich habe die Option 'Build, wenn eine Änderung an GitHub übertragen wird' aktiviert.
Wenn ich auf "Jetzt erstellen" klicke, wird die Erstellung erfolgreich durchgeführt, ohne dass Probleme auftreten. Wenn ich jedoch Code in mein Repository einsetze, findet keine automatische Erstellung statt. Ich kann von meinem System aus auf GitHub zugreifen, da das Repository öffentlich ist und ich glaube, sogar Jenkins sollte es erkennen können. Ich weiß, dass es eine Polling-Option gibt, aber ich möchte, dass Jenkins erstellt wird, wenn Änderungen im Repository festgestellt werden (das ist, was wir versucht haben, zu erreichen).
Konfiguration:
Jenkins 1.615
Git Plugin 2.3.5
Git Client Plugin 1.17.1
——————————————————————————————————————
EDIT : " Build, wenn eine Änderung an GitHub vorgenommen wurde" Umbenannt in " GitHub-Hook-Trigger für GITScm-Polling " in der neuesten Version des GitHub-Plugins. (Dank an @ smrubins Feedback.)
Ich vermute, Sie haben den webhook url
Verpasst.
Neben dem Aktivieren der Option Build when a change is pushed to GitHub
Sollten Sie auch die Webhook-URL in Ihr Github-Repository einfügen, damit der Auto-Trigger-Mechanismus funktioniert ich zeige:
Gehen Sie zu Ihrem Github-Repository:
Einstellungen -> Webhooks & Dienste -> Dienst -> Dienste hinzufügen -> Wähle "Jenkins (GitHub-Plugin)"
Füllen Sie dann den Jenkins hook url
Mit Ihrer Jenkins-URL wie folgt aus: http: // your_jenkins_url/github-webhook /
Und, SEHR WICHTIG , da Sie Ihren Jenkins-Server in Ihrem Localhost installieren, beachten Sie bitte, dass Sie nicht t Füllen Sie die Jenkins-Hook-URL wie http://localhost:8080/github-webhook/
aus, da Github localhost
oder 127.0.0.1
oder 192.168.*.*
nicht erkennen kann. .
Verwenden Sie entweder einen von außen zugänglichen DNS-Namen oder eine IP-Adresse, die von Github erkannt wird.
Ich hatte das gleiche Problem und habe es gelöst. Das Problem war, dass die URL mit einem /
Enden musste. Bedeutung:
http://<jenkinsurl>:8080/github-webhook/
✅
http://<jenkinsurl>:8080/github-webhook
❌
(Beachten Sie das fehlende /
Am Ende.)
Eigentlich, wenn Sie die Webhook-Einstellungen von Jenkins -> Github plugin configuration
(oben erwähnt), es werden immer noch Webhooks in Github erstellt. Also, über zwei Ansätzen im Grunde das gleiche zu tun.
Ich persönlich mag es, Webhooks aus Github zu erstellen, da Sie auf diese Weise keine Benutzerinformationen für Github in jenkins teilen oder speichern müssen.
Schritte :
Einloggen in Github (mit Admin)
Gehen Sie zu dem Repository, das Sie mit Jenkins verknüpfen möchten
Wenn Sie nun die Änderungen vornehmen und festschreiben, wird Jenkins Build automatisch ausgelöst. Vergessen Sie nicht, die Einstellungen in Jenkins-Jobs vorzunehmen, um den Build zu starten, wenn Sie Code in Github übertragen.
Das GitHub-Plugin ( https://wiki.jenkins-ci.org/display/JENKINS/GitHub+Plugin ) erwähnte zwei Möglichkeiten: manuellen Modus und automatischen Modus. Der Mainframer gibt die Antwort auf den manuellen Modus. Heute habe ich etwas Neues gefunden. Durch das Hinzufügen des Mainframers zum Dienst kann ich nicht mehrere Jenkins-Instanzen hinzufügen. Daher füge ich die anderen hinzu und füge den Webhook wie unten gezeigt hinzu. Es funktioniert auch gut.
Ich wollte hier ein Bild einfügen, aber mein Ausweis hat nicht das Recht dazu.