Jenkinsfile:一次定义并为多个变量赋值似乎没有实现

时间:2016-07-26 15:06:52

标签: jenkins groovy jenkinsfile

我在Red Hat Linux上使用Jenkins 2.6。我想在我的Jenkins文件中使用以下内容,但是当我尝试时,Jenkins抱怨道。 (似乎只是不喜欢=运算符左侧的语法。):

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

它似乎不喜欢多重分配,但Groovy 1.6及更高版本显然支持它们,按照这篇文章:

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

我想这样做,以便当我调用返回[6,7]的方法时,我可以这样称呼它:

def (a, b) = mymethod()

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

任何人都可以告诉我这是否适用于Jenkins,如果是这样,Jenkins的版本是什么?或者它是不受支持的功能?还是个bug?

由于

2 个答案:

答案 0 :(得分:3)

正如here所述,Pipeline"脚本"不是简单的Groovy脚本,它们在运行之前经过了大量的转换,主机上的某些部分,从机上的某些部分,其状态(变量值)被序列化并传递到下一步。因此,不支持每个Groovy功能。

我希望Jenkins docs& amp;演示文稿(这就是为什么我发现自己重复上面的段落......对此有很多困惑)。管道很简单似乎很神奇......好吧,它有点像;)

似乎确实不支持多项任务。我只找到了这个引用来确认它:this example of a commit由于这种限制,作者将其代码从多个赋值更改为简单赋值。

根据@rjohnston的建议,在邮件列表上提出要求可能是个好主意。

答案 1 :(得分:0)

它应该是可用的(实际上它可以在脚本控制台中运行)但是它看起来像是使管道脚本无法完成所需的任何工作。

开发邮件列表(https://groups.google.com/forum/#!forum/jenkinsci-dev)可能会告诉您这是一个错误还是一个不受支持的功能!