请放心,我对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]]