[英]How to call batch/groovy script located in jenkins slave from “Execute system Groovy script”?
[英]Loading groovy script from jenkins slave
我有一個jenkins管道,它加載如下所示的groovy實用程序腳本:
Utils = load('/var/lib/jenkins/utils/Utils.groovy')
當我在主節點上執行管道時,一切都很好。 在這種情況下,我可以在管道中的類Utils中使用這些方法。
node('master'){
stage('stage1'){
def Utils = load('/var/lib/jenkins/utils/Utils.groovy')
Utils.doSomething()
}
}
當我嘗試在從屬設備中執行管道時,出現了我的問題。 在這種情況下,上述負載會導致錯誤
java.io.IOException:java.io.FileNotFoundException:/var/lib/jenkins/utils/Utils.groovy(無此類文件或目錄)
為了避免此錯誤,我在管道中將文件加載到主節點中,如下所示
node('master'){
stage('stage1'){
Utils = load('/var/lib/jenkins/utils/Utils.groovy')
}
}
node(){
stage('stage2'){
Utils.doSomething()
}
}
這不是很有效,我不想僅使用master來加載文件,您對如何在Slave節點上加載Groovy scipt有任何建議嗎?
謝謝
首先,當您在從屬服務器上執行時嘗試加載文件時,導致上述錯誤java.io.IOException:java.io.FileNotFoundException:/var/lib/jenkins/utils/Utils.groovy(無此類文件或目錄)節點。 但是文件存儲在主節點的/var/lib/jenkins/utils/Utils.groovy中,我想這是另一台計算機和另一個文件系統。 因此,錯誤是合乎邏輯的。
當您在另一個節點(計算機,服務器等)上執行某些管道操作時,要加載該文件,需要將其存儲在該計算機(從屬)中並從那里加載它-因此路徑必須符合存放在從屬計算機中。
因此,我建議:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.