2

Ich habe einen Jenkins Job (multibranch pipeline) Setup für ein GitHub Repo. Ich möchte diesen Job automatisch auslösen, wenn eine Änderung an diesem Git Repo vorgenommen wird. Wie kann ich dies mit einer Jenkinsfile erreichen?Wie man eine Jenkins Multibranch-Pipeline auslöst, wenn Code-Änderung an GitHub geschoben wird

Ich möchte in dem Jenkins Job jede Konfigurationsänderung zu vermeiden, wie Poll SCM etc. Für mehrfach verzweigten Pipeline dort als Build whenever a change is pushed to GitHub

+0

das ist, was wäre, sollte passieren, wenn Sie Ihre mbp konfigurieren. Fügen Sie Ihre Quelle (git) hinzu und füllen Sie den Repo-Endpunkt aus. Stellen Sie sicher, dass es auf der Stammebene eine Jenkins-Datei gibt, und stellen Sie "Build-Konfiguration"> "Modus" auf "by Jenkinsfile". Dann stelle sicher, dass github trigegrs jenkins (über projekt> einstellungen> services> Jenkins (github plugin)) – Rik

+0

@Rik Leider scheint das nicht zu funktionieren. Ich habe alle Punkte erwähnt, die Sie erwähnt haben. Dies funktionierte, als ich die Option "poll scm" hinzufügte, aber das möchte ich vermeiden. Nur um ein weiteres Detail hinzuzufügen - ich benutze Jenkins Enterprise und wir haben dort einen Ordner, um Jobs für unser Team zu erstellen. – saikosen

+0

bei meiner Arbeit haben wir dies für Gitlab konfiguriert, und das funktioniert. Ich nehme an, Github ist das gleiche. Wenn ich einige Zeit später heute werde ich überprüfen, ob ich es für Github arbeiten und dann einen Screenshot – Rik

Antwort

0

Für Ihre Arbeit „reagieren“, um Ereignisse aus Ihrer GitHub keine solche Option ist, den Job Build Trigger auf "Poll SCM", aber tun nicht einen Zeitplan angeben, wie auf this Stackoverflow answer beschrieben.

Für deklarative Jenkinsfile bedeutet dies:

pipeline { 
    triggers { 
    pollSCM('') // Enabling being build on Push 
    } 
    ... 
} 

Weitere Literatur:

0

Die einfachste Option bei weitem (das ich kenne) ist der Ferne sagen Sie dem Jenkins Git-Plugin, dass es ein neues Commit für ein definiertes Repository gibt. Dies wird Jenkins jedoch nicht veranlassen, sofort eine Arbeit zu beginnen. Was passiert, ist, dass das Git-Plugin das spezifische Repository neu indiziert. Wenn Änderungen festgestellt werden, wird der Jenkins-Job gestartet.

Von Ihrem Repository (GitHub, Gitlab, etc.) sollten Sie die folgende URL auslösen:

http://my-jenkins-host/git/[email protected]:group/repository.git&delay=0sec

Der Wert für url müssen die SCM-URL Sie im Jenkins Job (Git-Plugin) konfiguriert wurde !

Gotcha: es kann sein, dass Ihr Jenkins ist nicht unter dem Stammkontext eingesetzt (/), in welchem ​​Fall die URL http://my-jenkins-host/context-path/git/...

Verwandte Themen