问题描述
我知道如何将参数传递给JCasC的种子作业(通过providedEnv
s),并且我知道如何在种子作业中设置默认参数,但是我不知道如何将两者结合起来。
我想这样做是因为我的工作可以多种方式使用,因此应该可以通过providedEnv
来控制(无论它们是否在jenkins.yml
中定义)。
这是我失败的尝试:
jenkins.yml
...
- providedEnv:
AGENT: 'docker-host'
JOB_NAME: 'Test Seed Job Params'
TEST_ParaM_DEFAULT_FALSE_OVERRIDE_TRUE: 'true'
TEST_ParaM_DEFAULT_TRUE_OVERRIDE_FALSE: 'false'
- file: /var/casc_configs/seed_jobs/param_test.groovy
param_test.groovy
pipelineJob("Test Params") {
description("")
keepDependencies(false)
parameters {
wHideParameterDeFinition {
name('AGENT')
defaultValue("${AGENT}")
description('Node on which to run.')
}
booleanParam(
"TEST_ParaM_DEFAULT_FALSE_OVERRIDE_TRUE","${TEST_ParaM_DEFAULT_FALSE_OVERRIDE_TRUE ?: false}".toBoolean(),"Test param."
)
booleanParam(
"TEST_ParaM_DEFAULT_TRUE_OVERRIDE_FALSE","${TEST_ParaM_DEFAULT_FALSE_OVERRIDE_TRUE ?: true }".toBoolean(),"Test param."
)
booleanParam(
"TEST_ParaM_DEFAULT_TRUE","${TEST_ParaM_DEFAULT_TRUE ?: true}".toBoolean(),"Test param."
)
booleanParam(
"TEST_ParaM_DEFAULT_FALSE","${TEST_ParaM_DEFAULT_FALSE ?: false}".toBoolean(),"Test param."
)
}
}
错误:
groovy.lang.MissingPropertyException: No such property: TEST_ParaM_DEFAULT_TRUE for class: javaposse.jobdsl.dsl.helpers.BuildParametersContext
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:53)
at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:307)
at script$_run_closure1$_closure2.doCall(script:22)
at script$_run_closure1$_closure2.doCall(script)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
...
据我所知,TEST_ParaM_DEFAULT_FALSE_OVERRIDE_TRUE
和TEST_ParaM_DEFAULT_TRUE_OVERRIDE_FALSE
可以工作,但是在Jenkins启动期间,我在jenkins.yml
中未指定任何内容的中断了。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)