具有Groovy脚本的Jenkins Active Choice参数调用函数

时间:2019-07-11 23:08:59

标签: jenkins-pipeline jenkins-groovy

尝试在主动选择参数“脚本”部分中调用已定义的函数似乎无效:

def JustTest() {
  xxx = ['a','b']
  return xxx
}

properties([
    parameters([
        [$class: 'ChoiceParameter', 
            choiceType: 'PT_SINGLE_SELECT', 
            ////
            some code omitted
            ////
            script: [
                classpath: [], sandbox: false, 
                script:
                """
                def mymy = JustTest()
                return mymy
                """
                ]
            ]
        ]
    ])
])

pipeline {
  some code
}

尝试使用参数进行构建时收到错误

p.s。 “输入”不适合我,我需要在开始之前选择参数

1 个答案:

答案 0 :(得分:0)

在没有看到错误的情况下,我认为这只是确保为选择参数提供正确的数据类型(字符串)的问题。

对于List的返回类型,将它们与换行符连接在一起,如下所示。如果还有其他问题,您将需要进一步操作

    List JustTest() {
         List xxx = ['a','b']
         return xxx
    }

    properties([
        parameters([
            choice(name: 'PARAM', choices: JustTest().join('\n'), description: 'Choice'),
        ])
    ])

我认为不需要这种冗长的选择实现,但也许我们的jenkins插件有所不同。也许在没有所有$ class详细信息的情况下尝试一下我的短篇小说。