请放轻松我,我对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,"我甚至没有"爬行"但!
提前致谢
答案 0 :(得分:3)
尝试将参数包装在另一对方括号中,使其成为Groovy列表(只有一个元素):
build job: 'Sample-REST-call-to-automation-service', parameters: [[$class: 'IntegerParameterValue', name: 'sleepduration', value: sleepduration]]