Jenkins booleanParam不再工作了

时间:2017-04-19 03:18:28

标签: jenkins groovy continuous-integration

自从使用Jenkins 2.55设置新的Jenkins服务器后,booleanParam参数不再起作用。我正在使用声明性管道,booleanParam上周工作得很好(更新前)。

pipeline
{
    agent any

    environment
    {
        LANG = "en_US.UTF-8"
        LANGUAGE = "en_US.UTF-8"
        LC_ALL = "en_US.UTF-8"
        LC_CTYPE = "en_US.UTF-8"
    }

    options
    {
        buildDiscarder(logRotator(numToKeepStr: '5'))
        timeout(time: 1, unit: 'HOURS')
    }

    parameters
    {
        booleanParam(name: 'DO_CHECKOUT', defaultValue: true, description: 'If checked, source code repositories are checked-out before building.')
    }

    stages
    {
        etc ...
    }
}

作业运行时,出现以下错误:

java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String
    at hudson.EnvVars.put(EnvVars.java:74)
    at java.util.AbstractMap.putAll(AbstractMap.java:281)
    at java.util.TreeMap.putAll(TreeMap.java:327)
    at hudson.EnvVars.<init>(EnvVars.java:93)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
...

任何人都知道发生了什么事?

1 个答案:

答案 0 :(得分:1)

这似乎是当前版本的Jenkin pipeline-model-definition-plugin中的一个错误。在同一声明性管道中使用具有布尔参数的环境块时发生。将使用1.1.3版修复。

请参阅https://issues.jenkins-ci.org/browse/JENKINS-43486