2013-03-27 16 views
11

Hier suche ich im Grunde nach einem Abhängigkeitsparameter.Jenkins Dynamische Parameter basierend auf dem zuvor ausgewählten Parameterwert

Nehmen wir an, ich habe zwei Dropdowns im Build-Parameter-Abschnitt. Basierend auf dem Wert, der aus dem ersten Dropdown ausgewählt wurde, sollte der Standardwert die Werte des zweiten Dropdowns variieren.

Gibt es ein Plugin oder Ansatz, um diese Anforderung effektiv zu behandeln?

+0

Wenn ich möchte das zweite Dropdown-Werte aus der Ausgabe eines Shell-Skript nehmen, wie mache ich das? – Triangle

Antwort

1

This ist das, was Sie richtig erreichen wollen?

Dann könnten Sie erben hudson.model.ChoiceParameterDefinition, und überschreiben seine Methode getChoicesText. Geben Sie die Optionen basierend auf dem zurück, was Sie möchten. In Ihrer Situation können Sie Umgebungen von Hudson.getInstance() abrufen.

Unter Snippets wird gezeigt, wie Umgebungsvariablen erhalten.

Hudson.getInstance().getGlobalNodeProperties() 
     .get(EnvironmentVariablesNodeProperty.class).getEnvVars().get(name); 

Here ist die ähnliche Frage.

+0

Die Frage besteht darin, die Liste basierend auf einem Parameter auf demselben Formular zu ändern. Ich bin mir nicht sicher, ob es leicht ist, dies zu erreichen, aber ich würde gerne einen Beispielcode darüber sehen, wie es geht. Die Art und Weise, wie Sie (und die verknüpfte Antwort) anzeigen, verwendet bereits vorhandene Informationen, die an anderer Stelle definiert wurden, und ändert die Auswahl nicht basierend auf einem anderen Dropdown-Element im selben Formular. – hyde

5

Ich habe es nicht benutzt, aber es sieht aus wie das folgende Plugin kann tun, was Sie wollen:

A Jenkins Parameter-Plugin, das für zwei ausgewählte Elemente ermöglicht. Die zweite Auswahl füllt Werte in Abhängigkeit von der Auswahl, die für die erste Auswahl getroffen wurde.

https://github.com/tekante/Dynamic-Jenkins-Parameter/wiki

+1

* Scheint sehr begrenzt zu sein, erlaubt nur zwei Auswahlmöglichkeiten im ersten Drop-Down, also nur zwei alternative Listen für das 2. Drop-Down. – hyde

+0

Ist es möglich Groovy in diesem Plugin auszuführen? –

9

Das ist genau das, was Sie suchen: https://github.com/biouno/uno-choice-plugin/wiki/Uno-Choice-Cascade-Dynamic-Choice-Parameter

Es scheint ein verstecktes Juwel zu sein, hat es nicht so weit in eine der ähnlichen Fragen gefunden.

+6

Vielleicht ein bisschen spät, aber wenn jemand anderes dies benötigt, wie in [dieser ähnlichen Frage] (http://stackoverflow.com/questions/18393671/how-to-get-a-parameter-depend-of-other-parameter -in-hudson-or-jenkins) wurde das Plugin mit der Jenkins-Community geteilt und _offiziell_ umbenannt in [Active Choices Plugin] (https://wiki.jenkins-ci.org/display/JENKINS/Active+Choices+Plugin) – Morfic