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

时间:2016-08-02 16:33:36

标签: rest groovy jenkins-pipeline

请放轻松我,我对Jenkins相对较新,对Pipeline / Groovy来说也是新手。我们在实验室中运行Jenkins v2.7.1,其中包含所有最新的必备Pipeline插件。

我的目标是创建一个两步或三步管道构建的基本演示。它将由Git push(由此工作)触发。我有两个粒度传统的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.'
}

此问题与此类似: Pass Jenkins build parameters to pipeline nodes

此时我正尝试使用Pipeline / Groovy采取措施。我有一个' Sample-REST-call-to-automation-service'使用curl命令成功调用REST服务。我最终需要弄清楚如何构建一个JSON请求体......但是那个" s" walk,"我甚至没有"爬行"但!

提前致谢

1 个答案:

答案 0 :(得分:3)

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

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