2016-07-26 4 views
7

Ich verwende Jenkins 2.6 auf Red Hat Linux. Ich möchte folgendes in meiner Jenkinsfile verwenden, aber wenn ich es versuche, beklagt sich Jenkins bitter. (Es scheint nur die Syntax auf linke Seite des Operators = Abneigung.):Jenkinsfile: Definieren und zuweisen von Werten zu mehreren Variablen auf einmal scheint nicht implementiert werden

def (a, b) = [6, 7] 

Es ist nicht Mehrere Zuordnungen mag es scheint, noch Groovy 1.6 und später offenbar unterstützen sie, nach diesem Beitrag :

http://mrhaki.blogspot.co.uk/2009/09/groovy-goodness-multiple-assignments.html

ich möchte, dies zu tun, so dass, wenn ich eine Methode aufrufen, die zurückgibt [6, 7] ich es so nennen kann:

def (a, b) = mymethod() 

def mymethod() 
{ 
    return [6, 7] 
} 

a Can Könntest du mir sagen, ob das in Jenkins funktionieren sollte und wenn ja, in welcher Version von Jenkins? Oder ist es eine nicht unterstützte Funktion? Oder ein Fehler?

Dank

+2

Dies wurde behoben! https://issues.jenkins-ci.org/browse/JENKINS-44027 – rjohnston

Antwort

0

Es sollte vorhanden sein (und in der Tat funktioniert es vom Script Console) aber es sieht aus wie alles, was notwendig ist, um es von einem Pipeline-Skript nicht geschehen ist zu arbeiten.

Die dev-Mailingliste (https://groups.google.com/forum/#!forum/jenkinsci-dev) kann Ihnen möglicherweise sagen, ob dies ein Fehler oder nur eine nicht unterstützte Funktion ist!

3

Als here, Pipeline „Skripte“ sind nicht einfach Groovy Skripte erklärt, werden sie stark transformiert, bevor ausgeführt wird, einige Teile auf Master, einige Teile auf Sklaven mit ihren Zustand (Variablenwerte) serialisiert und zum nächsten Schritt übergeben. Daher wird jede Groovy-Funktion nicht unterstützt.

Ich wünschte, es wurde klarer in Jenkins docs & Präsentationen gemacht (deshalb finde ich mich wiederholen den obigen Absatz ... es gibt viel Verwirrung darüber). Pipeline ist so einfach, es scheint magisch ... naja, es ist irgendwie;)

Es scheint, dass mehrere Zuweisungen in der Tat nicht unterstützt werden. Ich habe diese Referenz nur gefunden, um sie zu bestätigen: this example of a commit, wo der Autor seinen Code aufgrund dieser Einschränkung von mehreren Zuweisungen zu einfachen Zuweisungen ändert.

Wahrscheinlich eine gute Idee, auf der Mailing-Liste wie von @ rjohnston vorgeschlagen zu fragen.

+0

Hallo denke diese Einschränkung noch ein wenig verwirrend in der [Scripted Pipeline] (https://jenkins.io/doc/book/pipeline/syntax/ # scripted-pipeline) docs, weil es besagt, dass "die meisten Funktionen der Groovy-Sprache den Benutzern zur Verfügung gestellt werden ...". Wäre hilfreicher, irgendwo das zu definieren, was der wahre Umfang von Groovy ist. – snaphuman

Verwandte Themen