我希望执行以字符串形式编写(并生成)的代码,我创建了.Jenkinsfile文件:
pipeline {
stages {
stage('validation') {
steps{
script{
new GroovyShell().evaluate("""build (job:'myjob' , parameters:[string(name: 'FOO', value: "BAR")]""")
}
}
}
}
}我收到错误:
hudson.remoting.ProxyException: groovy.lang.MissingMethodException: No signature of method: Script1.string() is applicable for argument types: (java.util.LinkedHashMap) values: [[name:FOO, value:BAR]]
Possible solutions: toString(), toString(), print(java.lang.Object), print(java.io.PrintWriter), print(java.lang.Object), run()
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:71)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:80)我不需要完全使用GroovyShell,任何执行字符串的变体都适合我。
发布于 2022-09-19 00:44:59
您可以将脚本移动到下面的文件中,然后使用load方法read并执行它。
test.groovy
def call() {
echo "Running the Job"
build (job:'myjob' , parameters:[string(name: 'FOO', value: "BAR")])
}
return this;管道
script{
def exec = load "PATH/TO/SCRIPT/test.groovy"
exec()
}https://stackoverflow.com/questions/73766787
复制相似问题