首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jenkins管道函数错误,没有错误

jenkins管道函数错误,没有错误
EN

Stack Overflow用户
提问于 2017-02-23 17:28:25
回答 2查看 662关注 0票数 0

我正在使用jenkins管道脚本在我们的机器上进行产品测试

所有测试之父如下所示

代码语言:javascript
复制
node('nightly-master') {

stage 'run'
println PRODUCTS
oliTest('win7.nightly.test', 'checkAndWaitForInstalledProduct.py', 'esxi', 'opsi-local-image-prepare', 'opsi-local-image-win7', PRODUCTS)
)
}

PRODUCTS是一个textbox变量,在构建开始时就会被忽略

函数oliTest()如下所示:

代码语言:javascript
复制
def call(SERVERID, CHECKSCRIPT, VIRTUALIZATION, OLIPREPARE, OLINETBOOT, PRODUCTS){

    try {
    timeout(time: 5, unit: 'HOURS') {
    println SERVERID
    println CHECKSCRIPT
    println VIRTUALIZATION
    println OLIPREPARE
    println OLINETBOOT
    println PRODUCTS
    //oliPrepare(SERVERID, CHECKSCRIPT, VIRTUALIZATION, OLIPREPARE, OLINETBOOT)
    oliProd(SERVERID, CHECKSCRIPT, VIRTUALIZATION, PRODUCTS)
    oliBackup(SERVERID, CHECKSCRIPT, VIRTUALIZATION)
    oliRestore(SERVERID, CHECKSCRIPT, VIRTUALIZATION)
    }
        } catch(error) {
    sh "fab -f /home/adminuser/scripts/${VIRTUALIZATIO}Nfab.py powerOffVm:vmName=${SERVERID}"
    sh 'return 1'
    }
}

只要调用函数oliProd(),println值就会正确地打印到jenkins日志中。在下面的代码块中,forr循环中的测试将失败,并且不会显示任何错误消息

代码语言:javascript
复制
def call(SERVERID, CHECKSCRIPT, VIRTUALIZATION, PRODUCTS){

    stage 'install Products'
    println SERVERID
    println CHECKSCRIPT
    println VIRTUALIZATION
    println PRODUCTS
    sh " echo ${PRODUCTS}"
    sh "echo ${SERVERID}"
    sh "for i in ${PRODUCTS}; do opsi-admin -d method setProductActionRequestWithDependencies $i ${SERVERID} setup;done"
}

由于${SERVERID}未展开并保留为空,因此将其写入带有‘命令’的多行时会出现错误

你有什么建议吗?

干杯

EN

回答 2

Stack Overflow用户

发布于 2017-02-24 02:48:13

请注意,您可以使用三个双引号而不是三个单引号。这将会解决这个简单的问题。

然而,您真的应该在脚本代码本身中进行迭代,而不是尝试在shell中进行迭代。

票数 0
EN

Stack Overflow用户

发布于 2018-04-14 09:00:07

Jon S建议根据对“管道对象”的引用来解析脚本方法,如在oliTest(this, ...)中,oliTest声明一个脚本参数并将其传递给其他方法/实例,用于将echo解析为scriptObj.echo

println in "call" method of "vars/foo.groovy" works, but not in method in class

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42411664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档