我正在尝试使用共享库来优化我的 Jenkins 脚本。我创建了一个存储库,创建了一个
vars
目录并添加了两个 groovy 脚本:
.
`-- vars
|-- buildDockerImage.groovy
`-- getSvnOptions.groovy
这是我的共享库的配置:
当我尝试在管道中使用它们时,它会按预期工作并返回预期的输出,例如
pipeline {
agent any
stages {
stage('Build and Test') {
steps {
script {
// Use the shared library function
def choices = getSvnOptions('https://svn.test.com/svn/projects/scripts', 'trunk', true, true)
echo "${choices}"
}
}
}
}
}
尽管,当我尝试添加要从此函数填充的主动选择参数时,它不起作用:
脚本的返回是['A', 'B', ...]格式。此外,我尝试从 jenkins/script 页面执行它,但出现以下错误:
groovy.lang.MissingMethodException: No signature of method: Script1.getSvnOptions() is applicable for argument types: (java.lang.String, java.lang.String, java.lang.Boolean, java.lang.Boolean) values: [https://svn.test.com/svn/projects/scripts, trunk, true, true]
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:71)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:80)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:157)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:193)
at Script1.run(Script1.groovy:1)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:574)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:612)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:583)
同样适用于我的其他方法,它没有任何参数,因此参数不是问题。您知道如何使用此函数来填充活动选择参数吗?