0

Ich habe drei Jobs.Wie kann ich einen Job auslösen, der den Status von zwei anderen Jobs überprüft?

  1. erst Eltern Job
  2. zweiter Elternteil Job
  3. Kinder Job

Ich will 'Child Job' auszulösen erst nach 'ersten Eltern Job' und 'zweitem Elternteil Job' erfolgt und gelungen. Ich habe keine Kontrolle über beide Elternjobs. Beide können jederzeit in beliebiger Reihenfolge laufen.

Kurz gesagt habe ich einen Kinderjob, der auf zwei Elternjobs angewiesen ist. Ich möchte diesen untergeordneten Job ausführen, sobald beide übergeordneten Jobs abgeschlossen sind.

Bitte helfen Sie mir mit der Lösung! Kann ich ein Plugin oder Jenkins Python-APIs haben?

+0

Kann ich um Klarstellungen bitten? Sie sagten, beide können jederzeit und in beliebiger Reihenfolge ausgeführt werden, aber Sie müssen beide ausführen, um den untergeordneten Job auszulösen. Wenn also einer läuft und erfolgreich beendet wird, sollten Sie den untergeordneten Job nicht auslösen. Haben die Elternjobs irgendeine Verbindung zwischen ihnen? Sind sie auf die Anzahl der Builds abgestimmt? (wie in - P1 läuft 4 mal und P2 läuft 2 mal, würden Sie warten, dass P2 noch 2 Mal ausgeführt wird, bevor der Job des Kindes ausgelöst wird?) – Dvir669

+0

@ Dvir669 Übergeordnete Jobs sind nicht verwandt. Beispiel: Übergeordneter Job1 erstellt ein Installationsprogramm A Übergeordneter Job2 Erstellt ein anderes Installationsprogramm B Untergeordneter Job benötigt sowohl das Installationsprogramm zum Erstellen einer Suite dieser Installationsprogramme (A und B). So können übergeordnete Jobs jederzeit abgeschlossen werden. Beide übergeordneten Jobs sind unabhängig. Ich brauche einen Mechanismus, der untergeordnete Job einen Trigger von einem übergeordneten Job akzeptieren und auf den erfolgreichen Start des nächsten übergeordneten Jobs warten. –

+0

Es scheint, als ob Sie nur die letzten erfolgreichen Installer von beiden Jobs benötigen. Ich hätte es anders implementiert, aber Sie können versuchen, in den Abschnitt "Auslöser erstellen" zu suchen und in Ihrem untergeordneten Job "Erstellen, nachdem andere Projekte erstellt wurden" zu markieren. Dadurch können Sie den untergeordneten Job erstellen, nachdem die Eltern erfolgreich abgeschlossen wurden. Viel Glück! – Dvir669

Antwort

1

Sie können dies mit dem Jenkins Pipeline-Plugin tun. Hier ist ein Beispielcode:

parallel firstJob: { 
     node { 
      echo "Build parent-job-1" 
      build 'parent-job-1' 
     } 
    }, secondJob: { 
     node { 
      echo "Build parent-job-2" 
      build 'parent-job-2' 
     } 
    } 

node {  
    echo "Build child-job" 
    build 'child-job' 
} 
+0

Ich kann übergeordnete Jobs nicht kontrollieren. welches von einer anderen Mannschaft kontrolliert wird. –

+0

Vielleicht können Sie im Abschnitt Build-Auslöser hinzufügen: Erstellen, nachdem andere Projekte erstellt und übergeordneten Jobs hinzufügen. – krynio

+0

Ich brauche sowohl den übergeordneten Job, der abgeschlossen werden soll, bevor ich den untergeordneten Job auslöst. –