目前我有一個「全包」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文件,而不使用單獨的庫。