web-dev-qa-db-de.com

Wie man einen Parameter erhält, hängt von anderen Parametern in Hudson oder Jenkins ab

Ich habe Probleme mit Hudson, weil mein Job zwei Parameter benötigt, um die erste zu erstellen, die die Umgebung spezifiziert und eine von DEV, QA, PROD sein kann und der zweite ein bestimmter Server ist.

Wenn ich beispielsweise die Umgebung DEV gewählt habe, kann der zweite Parameter nur DEV1, DEV2, MAQ1 sein. Ich habe keine Ahnung, ob ein Plugin mit dieser Funktionalität existiert oder ich muss etwas mit Groovy machen. Ich weiß nicht, bitte hilf mir.

Vielen Dank

10
David Dominguez

Es scheint, dass Jenkins die Liste der Parameter lädt, die beim Öffnen der Seite "Projekt erstellen" ausgewählt werden sollen. Es gibt auch keinen Rückruf, wenn ein Parameter ausgewählt wird.

In diesem Fall ist es schwierig, den zweiten Parameter basierend auf dem ersten Parameter ohne Javascript und ein benutzerdefiniertes Plug-in einzuschränken.

Ich habe mir auch die angeschaut:

Ich würde die Jenkins-Benutzerliste nach weiteren Informationen fragen.

4
coffeebreaks

Testen Sie das Active Choices Plugin . Es ist der zweite Name des Uno-Choice-Plugins, es befindet sich jedoch im offiziellen Jenkins-Repository und erfordert kein UpdateSites Manager-Plugin. (Beide Plugins haben den gleichen Autor). Das Plugin enthält eine großartige Dokumentation mit Beispielen (und GIF-Demonstration) auf der Beschreibungsseite des Plugins.

14
kool79

Ein gutes Plugin (erfordert das UpdateSites Manager Plugin und die Registrierung der biouno-Aktualisierungssite ) ist das Uno-Choice-Plugin (und Freunde).

Das Uno-Choice Cascade Dynamic Parameter Plugin plugin erlaubt nicht nur mehr als zwei Ebenen von Abhängigkeiten, sondern kann dynamischen Inhalt für die Parameter erzeugen, die von vorherigen Eingaben abhängen, entweder mit Scriptler oder Inline Groovy.

Dies ist sicherlich viel mehr fähig als die vorherigen Antworten.

12
coderatchet

Ich bin auf ähnliche Probleme gestoßen. Ich habe einen Parameter für die Umgebung Dev1, Dev2, ..... und einen zweiten für den Server, auf dem ich den Job ausführen muss. Ich kann die zweite von der ersten Seite berechnen, aber der Job läuft bereits und ich kann ihn nicht mehr auf einen anderen Server verschieben.

Am Ende hatte ich also die beiden Parameter mit allen möglichen Auswahlmöglichkeiten und lehrte die Benutzer, nur die gültigen Kombinationen zu wählen. Ich kann während der Skriptausführung testen, ob die Kombination gültig ist. Ich habe auch eine kleine HTML-Tabelle in den Kommentar eines der Parameter eingefügt, der gültige Kombinationen enthält.

Können Sie in Ihrem Fall den Wert des ersten Parameters aus den Werten der zweiten Parameter berechnen? Dann könnten Sie (falls noch notwendig) den Wert des ersten Parameters berechnen, in eine temporäre Eigenschaftendatei schreiben und ihn mit dem Plugin EnvInject in einem späteren Erstellungsschritt laden.

0
Peter Schuetze

Sie können das EnvInject Plugin ausprobieren.

Zuerst legen Sie den ersten Parameter in eine Einstellungsdatei. Dann kann das Plugin aus der Datei lesen.

0
Johnny Chen