2017-01-10 3 views
0

Ich habe eine Jenkins-Build mit einer Auswahlbox für Build-Präfixe von Release. Es hilft, einen Job basierend auf dem Wert des spezifischen Builds auszulösen, den die Person wollte.Generieren eines dynamischen Parameters in Jenkins basierend auf einem Parameter aus dem gleichen Job

Ich wollte den Wert dieser Auswahlbox nehmen und die Variable in das korrekte Präfix umwandeln, basierend auf den Namenskonventionen, die normalerweise auf diesem Server verwendet werden, um den Job basierend auf seinem Namen auszulösen.

Also lassen Sie uns sagen, dass ich Build Präfix Entscheidungen für speziell haben, ReleaseOne ReleaseTwo none

Für none, verwendet, um die Parameter Bedeutung wird nicht versuchen, eine bestimmte Release-basierte Informationen zuzugreifen oder diese eingestellt durch das Auslösen der nicht-release-spezifizierte Build

Ich wollte den Wert von Release_Prefix nehmen und es für den Job transformieren, den ich später triggere. Ich hatte gehofft, dies mit einem dynamischen Parameter oder einem ähnlichen Mechanismus zu erreichen. Ich bin mir nicht sicher, ob mein Skript abgehört wird, oder etwas Grundlegendes funktioniert nicht in meiner Absicht. Dies könnte aufgrund einiger angedeuteter Rückmeldungen aus einer ähnlichen Frage der Fall sein.

Kann ich etwas wie diesen Ausschnitt unten tun? Wenn nicht mit Dynamic Parameter Plugin + GroovyScript, was würden Sie vorschlagen? Dies scheint derzeit nichts zurückzugeben, unabhängig von meiner Wahl.

Formatted_Prefix Parameter, dynamische Parameter

switch(binding.getVariables().get("Release_Prefix")) 
{ 
    case "none": 
     return ""; 
    case "ReleaseOne": 
     return "ReleaseOne_"; 
    case "ReleaseTwo": 
     return "ReleaseTwo_"; 
    default: 
     def prefix = binding.getVariables().get("Release_Prefix") 
     return "$prefix_"; 
} 

Es gibt mehrere Möglichkeiten, wie ich diese überwinden kann, aber wenn ich es in der Anfangsparameter Bühne tun können, das wäre für mich am besten.

Antwort

1

Sie können hierfür EnvInject Plugin verwenden.
Prüfung das Kontrollkästchen eine Umgebung für den Lauf vorbereiten und schreiben das Skript innerhalb

Groovy Skript Textfeld Ausgewertet

def prefix1 = Release_Prefix + "mydata"
return [prefix: prefix1]

+0

Vielen Dank! Nur ein Hinweis für alle, die diese Antwort lesen - das wird keine neue Variable _Jenkins_ erzeugen, z. B. eine, die in den Umgebungsvariablen angezeigt wird, aber das funktioniert. Ich habe die Logik in diesem Screenshot verwendet, um Builds basierend auf bekannten Benennungskonventionen, die dieser Server verwendet, auszulösen: http://i.imgur.com/Ibt0jT1.png - die Variable, auf die im Job verwiesen wird, wäre $ {Formatted_Prefix} ', in bash:' $ Formatierter_Präfix', in cmd, '% Formatierter_Präfix%' –

Verwandte Themen