流水线Groovy代码调用带Interger Parm的参数化构建失败

Fla*_*ake 2 rest groovy jenkins-pipeline

请放心,我对Jenkins来说还比较陌生,而对于Pipeline / Groovy来说则是非常新的。我们正在实验室中运行Jenkins v2.7.1,带有所有最新的必需Pipeline插件。

我的目标是创建两步或三步管道构建的基本演示。它会被一个Git推送触发(完成该工作)。我有两个传统的Jenkins细粒度构建工作,它们在Jenkins中可以分别正常工作。我想将它们组合在一起,但是发现我必须学习另一种新语言Groovy才能使其正常工作。啊。经过数小时的阅读和网络搜索,我似乎无法找到解决问题的答案。为了简单起见,我想在脚本中定义一个整数变量,并将其传递给Jenkins构建步骤。我似乎无法获得将整数传递给构建步骤的正确语法。这是错误:

java.lang.UnsupportedOperationException: no known implementation of interface java.util.List is named IntegerParameterValue
Run Code Online (Sandbox Code Playgroud)

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

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.'
}
Run Code Online (Sandbox Code Playgroud)

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

我现在正在尝试在Pipeline / Groovy方面采取一些措施。我有使用“ curl”命令成功调出REST服务的“ Sample-REST-call-to-automation-service”构建作业。我最终将需要弄清楚如何构建JSON请求正文...但这是“漫步”,我什至还没有“爬行”!

提前致谢

chr*_*s_f 5

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

build job: 'Sample-REST-call-to-automation-service', parameters: [[$class: 'IntegerParameterValue', name: 'sleepduration', value: sleepduration]]
Run Code Online (Sandbox Code Playgroud)