目前我有一个“全包”jenkinsfile其中包含各种功能。 为了在其他jenkins文件中重用这些函数,我想将它们放入单独的groovy脚本中,并从jenkins文件中加载它们。从jenkinsfile加载的groovy脚本未找到
scmHandler.groovy:
#!groovy
def handleCheckout() {
if (env.gitlabMergeRequestId) {
echo 'Merge request detected. Merging...'
}
...
}
return this;
在jenkinsfile
我做的:
... def scmHandler = load ("test/scmHandler.groovy") scmHandler.handleCheckout()
我试图按照从here指示,但詹金斯不停地抱怨,有没有这样的文件scmHandler.groovy
的我得到:
java.io.FileNotFoundException: d:\jenkins\workspace\myJenkinsJob\test\scmHandler.groovy
两个jenkinsfile和scmHandler.groovy驻留在test/
子目录中的项目的git仓库工作区来boild,并在主正确签出:
/var/lib/jenkins/jobs/myJenkinsJob/[email protected]/test/scmHandler.groovy
但是我无法找到他们的奴隶jenkins文件执行node {}
内的构建步骤的节点。在那里,我只看到jenkins文件的旧版本,因为(分离)结帐步骤尚未执行。
如何正确访问handleCheckout.groovy?我在这里错过什么?
其实我发现这是一个很好的方式来“包括”外部groovy文件,而不使用单独的库。