2016-09-21 1 views
1

Ich habe einen Pipeline-Job, der ein Git-Repository auscheckt (wir Aufruf ist "RepoA") und übergibt es an einige andere Downstream-Jobs für weitere Verarbeitung . Das Skript des Upstream-Jobs wird in einem anderen Git Repo gespeichert (nennen wir es "RepoB"). Dieser Job wird mit der Option "Poll SCM" konfiguriert, so dass alle Änderungen an RepoA ihn auslösen. Im Abschnitt "Pipeline" habe ich die Option "Pipeline-Skript von SCM" ausgewählt und konfiguriert, um das Pipeline-Skript vom Master-Zweig von RepoB zu erhalten. Ich habe auch die Option "Build-on-Commit-Benachrichtigungen nicht auslösen" hinzugefügt. Das Verhalten, das ich erwarte, ist, dass alle Änderungen, die an RepoA übertragen werden, den Job auslösen würden, und alle Änderungen an RepoB würden den Job nicht auslösen. Wenn ich jedoch eine Änderung auf repoB drücke, wird der Job ausgelöst.Jenkins Builds ausgelöst werden trotz "keine Build-on-Commit-Benachrichtigungen auslösen"

Ich weiß nicht, ob das ein Fehler ist, oder wenn ich etwas verpasse.

Ich betreibe Jenkins 2.7.4. Mein Master Jenkins läuft auf dem Ubuntu-Server 16.04.1 LTS. Alle meine Jenkins Plugins sind auf dem neuesten Stand.

Antwort

1

Nach einigem Austausch mit der Mailing-Liste Jenkins, ich jetzt besser verstehen, wie die Dinge so arbeiten hier ist das, was ich bei anderen Menschen brauchen, es zu tun hatte:

  • erstellen git Haken Jenkins zu benachrichtigen, dass Änderungen committed/pushed: an unserem Ende haben wir einen Post-Receive-Haken auf der Fernbedienung
  • Aktivieren Sie die Abfrage auf Ihrem Job, aber lassen Sie den Zeitplan leer
  • In der Pipeline Abschnitt, konfigurieren Sie es das groovy Skript von Ihrem Git zu ziehen Repo (in meinem Beispiel ist es RepoB), aber fügen Sie das Verhalten nicht hinzu: "Aktivieren Sie keine Build-on-Commit-Benachrichtigungen "
  • Stellen Sie sicher, Polling aktiviert, wenn Sie Ihre Git Repository Kasse (in meinem Beispiel ist es REPOA) in Ihrem Skript: standardmäßig es aktiviert ist, wenn Sie es nicht angeben

Soweit ich verstehen , die Option "Keine Build-on-Commit-Benachrichtigungen auslösen" bezieht sich auf Benachrichtigungen, die von den Hooks kommen und nicht aus dem Job-Polling-Plan, wie ich zuerst dachte.

+0

Wie erhalten Sie das Verhalten, dass Jenkins den Build nicht durch Einchecken zu RepoB startet? Mein Build wird immer noch mit dem Einchecken in beiden Repos beginnen, aber ich möchte es nur beim Einchecken in RepoA starten. Die Zeitplanung ist aktiviert, jedoch ohne Zeitplan. – ansib

Verwandte Themen