调用参数化构建的管道Groovy代码w/interger parm失败



请放心,我对Jenkins相对陌生,对Pipeline/Groovy也很陌生。我们正在实验室中运行Jenkins v2.7.1,其中包含所有必需的最新Pipeline插件。

我的目标是创建一个两步或三步Pipeline构建的基本演示。它将由Git推送触发(起作用)。我有两个细粒度的传统Jenkins构建工作,它们在Jenkins中分别运行良好。我想把它们连接在一起,但我发现我必须学习另一种新语言Groovy,才能让它发挥作用。啊。经过数小时的阅读和网络搜索,我似乎找不到问题的答案。为了简单起见,我想在脚本中定义一个整数变量,并将其传递给Jenkins构建步骤。我似乎找不到将整数传递给构建步骤的正确语法。错误如下:

java.lang.UnsupportedOperationException: no known implementation of interface java.util.List is named IntegerParameterValue

在这一点上,我并不试图在阶段之间传递参数。只是试图让第二阶段(参数化构建)接受一个整数参数。

node {
    stage name: 'prep-build-env', concurrency: 1
    echo 'Prepping build environment...'
    build job: 'php-env-prep'
    echo 'Done prepping build environment.'
    stage name: 'sample-rest-call', concurrency: 1
    def sleepduration = 10
    echo 'Executing sample REST call...'
    build job: 'Sample-REST-call-to-automation-service', parameters: [$class: 'IntegerParameterValue', name: 'sleepduration', value: sleepduration]
    echo 'REST call completed.'
}

此问题与此类似:将Jenkins构建参数传递到管道节点

在这一点上,我正在尝试使用Pipeline/Groovy迈出一小步。我有一个"自动化服务的示例REST调用"构建作业,它使用curl命令成功地调用了REST服务。我最终需要弄清楚如何构建JSON请求体。。。但那是"行走",我甚至还没有"爬行"!

提前感谢

尝试将参数包装在另一对方括号中,使其成为Groovy列表(只有一个元素):

build job: 'Sample-REST-call-to-automation-service', parameters: [[$class: 'IntegerParameterValue', name: 'sleepduration', value: sleepduration]]

最新更新