2016-06-02 13 views
1

Ich habe einen Jenkins Job Ich möchte die ganze Zeit laufen. Wenn ein Build endet, möchte ich sofort einen anderen Build auslösen. Wie kann ich das machen?Lauf Jenkins Job die ganze Zeit

Danke, Omer

+0

Was versuchen Sie wirklich zu erreichen? Was soll dieser Job machen? Vielleicht gibt es eine zusätzliche Antwort, wenn Sie die Details zu Ihrer Frage hinzufügen. –

Antwort

4

Es gibt zwei verschiedene Auftragskonfigurationen für das:

  1. Build-Trigger ->Erstellen Sie nach anderen Projekten
  2. hinzufügen Post-Build-Aktion gebaut werden Andere Projekte erstellen

In beiden Fällen können Sie Ihr eigenes Projekt eingeben, so dass es jedes Mal erneut ausgelöst wird, wenn ein Build abgeschlossen ist. Sie können auch angeben, ob dies nur durchgeführt werden soll, während das Projekt stabil ist.

Es gibt jedoch eine (wahrscheinlich) Nachteil bei diesem Ansatz, der ist, dass es Seiten enorme Übersicht erstellen werden, wo alle Trigger bauen aufgelistet:

trigger history

Also würde ich empfehlen etwas anderes tun und zum Beispiel die Jenkins-API verwenden, um einen neuen Build auszulösen. Es gibt viele Möglichkeiten, das zu tun, ein einfaches Beispiel eines Build-Schritt ist das Hinzufügen von Execute Shell und so etwas wie:

curl -X POST http://localhost:8080/job/$JOB_NAME/build 

Wenn Sie die Jenkins URL konfiguriert haben, können Sie auch $JOB_URL nutzen könnten. Sie können auch Post-Parameter hinzufügen, um einen parametrisierten Build auszulösen.

+0

Also was Sie sagen, ist, dass Job sich selbst nennen wird, bevor es endet? – omer727

+0

Wenn Sie den Shell-Ansatz verwenden, ja. Bei Verwendung des Upstream/Downstream-Ansatzes wird der neue Build ausgelöst, wenn der vorherige Build abgeschlossen ist. Unabhängig von der tatsächlichen Lösung wird jenkins nicht standardmäßig ein Projekt gleichzeitig erstellen, sondern den Folgeaufbau in die Warteschlange stellen, bis der "auslösende" Build tatsächlich beendet ist. –