Der GitHubPullRequestBuilder scheint nicht mit Jenkins v2.0-Pipeline-Jobs kompatibel zu sein.
Wie kann ein Pipeline-Job so konfiguriert werden, dass er von einem GitHub-Pull-Request-Ereignis ausgelöst wird?
.__ Die Dokumentation zu diesem Thema ist spärlich und ich kann keine Beispiele dafür finden. Oder ist es besser, einen Web-Hook in GitHub zu erstellen, um den Pipeline-Job für das PR-Ereignis auszulösen?
Die einfachste Möglichkeit, Pipeline mit GitHub-Pull-Anforderungen zu verwenden, besteht darin, das Skript unter dem Namen Jenkinsfile
in Ihr Repository zu stellen und dann das GitHub Branch Source -Plugin zu installieren. Dokumentation
Ich hatte ein ähnliches Problem. Folgendes hat für mich funktioniert
Vorbedingung
Auf Github
YourJenkinsURL/github-webhook/
Pipeline { Agent beliebig Stufen { Stufe ('Test') { Schritte { echo 'Hello World ...' } } } }
Auf Jenkins
+refs/pull/*:refs/remotes/Origin/pr/*
hinzu.${sha1}
seinDas ist es. Sie sind alle eingestellt. Das Erstellen eines PR auf dem Master-Zweig Ihres Repos sollte jetzt Ihren Jenkins Pipeline-Job auslösen
Einige Beobachtungen
Der Fluss in einer Nussschale kann so gehen:
Sie erstellen Ihre Pipeline als Code und speichern sie in einer Datei mit dem Namen Jenkinsfile
im Stammverzeichnis Ihres Projekts. Dieser Code sollte beschreiben, wie Ihr Projekt erstellt wird. Hier finden Sie Beispiele: https://jenkins.io/doc/pipeline/examples/
Dann sollten Sie in Ihren Jenkins ein neues Element "Multibranch Pipeline Project" erstellen. Sie sollten dies einrichten, um Ihr Repo von Schritt 1 zu scannen.
Wenn Sie nun einen neuen PR-Zweig für Ihr Repo der Stufe 1 öffnen, wird der Zweig ausgecheckt und gemäß den mitgelieferten Jenkinsfile-Anweisungen aufgebaut. Sie können weitere Bedingungen festlegen, was wann erstellt wird und wann Sie möchten.
Anmerkungen:
Beispieldokumentation "Multibranch Pipeline Project": https://jenkins.io/doc/book/pipeline-as-code/ (scrollen Sie zu Multibranch Pipeline-Projekten herunter)
Denken Sie daran, dass es nicht funktioniert, wenn Sie das Plugin dazu bringen, eine PR zu erstellen, nachdem Sie die PR empfohlen haben. Es gibt eine Diskussion, die dies hier analysiert: https://github.com/jenkinsci/gitlab-plugin/issues/298 Es gibt Problemumgehungen (in dieser Diskussion auch beschrieben), deren Einrichtung jedoch recht unordentlich ist.
Befolgen Sie die nachstehenden Schritte, um Jenkins-Job automatisch bei Pull-Anforderung auszulösen, die auf GitHub generiert wurde
Jenkins Job Konfiguration
Laden Sie den generischen Webhook-Trigger in Jenkins herunter
Git Hub Konfiguration auf Jenkins
7.Wählen Sie Generic Webhook Trigger on Jenkins 8 . Generic Webhook Trigger Configuration on Jenkins und folgen Sie Schritt 9
9.Nach dem Ausführen von Schritt 7 wird der Jenkins-Job bei PullRequest ausgelöst. 10.Schritt 8 ist erforderlich, um Informationen aus der Pull-Anfrage abzurufen. Payload 11 . Verzweigungskonfiguration im generischen Webhook-Trigger, um Verzweigungsdetails aus der Pull-Anfrage abzurufen.
Vielen Dank