2017-05-12 5 views
0

Ich versuche, das Dropdown-Menü aus einem Build in Jenkins basierend auf den Dateien in einem Ordner automatisch zu aktualisieren. Wenn beispielsweise ein neuer Ordner namens R10 zu einem bestimmten Ordner hinzugefügt wird, möchte ich, dass Jenkins ihn in seiner Jobauswahl anzeigt.Jenkins automatische Aktualisierung Dropdown-Menü

Versuchte es direkt an die config.xml des Jobs hinzufügen, aber es in Jenkins erhält nicht

Thanks :) aktualisiert

Antwort

1

Das ist nicht gerade nach vorne, Ihre Anforderung benötigt einen benutzerdefinierten Wrapper (Skript), das den Ordner "Neuer Ordner" überprüft und einen neuen Ordner, der in "Neuer Ordner" erstellt wird, der Build-Konfiguration des Jobs hinzufügt und anschließend die Konfiguration speichert.

Wenn Sie die Option/Name zu config.xml bearbeiten/direkt hinzufügen, bezweifle ich, dass sie im Build gespeichert wird.

Antwort, die gearbeitet: CRUMB=$(curl -s 'admin:[email protected]:8080/crumbIssuer/api/xml?xpath=concat(‌​//…) curl -X POST -H "$CRUMB" admin:[email protected]:8080/reload

+0

ich dachte, es wäre eine Art und Weise, dass Sie es in die XML-Datei hinzufügen und nach tut einem erneuten Laden der XML-Datei von jenkins. Sobald ich Jenkins neu starte, funktioniert es, aber ich würde gerne wissen, ob es einen Weg gibt, nur einen bestimmten Job neu zu laden – Dusty

+1

Ja, es gibt Möglichkeiten, es zu tun. Das Aktualisieren von XML-Dateien und das Neustarten von Jenkins ist keine gute Idee, da es auf lange Sicht schmerzhaft wäre, stattdessen ein grooviges Skript zu schreiben, um den Zieljob zu aktualisieren und zu speichern. So wird der nächste Lauf Ihres Jobs eine neue Konfiguration auswählen, ohne sogar jenkins neu zu starten. Option 2 wäre jenkins cli jar und update Job, Option 3 verwenden Rest api (Post-Methode) zu aktualisieren Job – prudviraj

+1

Gebrauchte option3 :) \t CRUMB = $ (curl -s 'http: // admin: pass @ localhost: 8080/crumbIssuer/api/xml? Xpfad = concat (// crumbRequestField, ":", // crumb) ') \t locken -X POST -H "$ CRUMB" http: // admin: pass @ localhost: 8080/reload – Dusty

Verwandte Themen