[英]Write to file via jenkins post-groovy script on slave
我想做一些非常簡單的事情:通過jenkins groovy post-build腳本插件創建/寫入位於從站的遠程工作空間中的文件
def props_file = new File(manager.build.workspace.getRemote() + "/temp/module.properties")
def build_num = manager.build.buildVariables.get("MODULE_BUILD_NUMBER").toInteger()
def build_props = new Properties()
build_props["build.number"] = build_num
props_file.withOutputStream { p ->
build_props.store(p, null)
}
最后一行失敗,因為該文件不存在。 我認為它與指向主執行器的輸出流有關,而不是遠程工作區,但我不確定:
Groovy script failed:
java.io.FileNotFoundException: /views/build_view/temp/module.properties (No such file or directory)
我沒有正確寫入文件嗎?
在寫入slave時,您需要先檢查通道,然后才能成功創建文件句柄並開始讀取或寫入該文件:
if(manager.build.workspace.isRemote())
{
channel = manager.build.workspace.channel;
}
fp = new hudson.FilePath(channel, manager.build.workspace.toString() + "\\test.properties")
if(fp != null)
{
String str = "test";
fp.write(str, null); //writing to file
versionString = fp.readToString(); //reading from file
}
希望這可以幫助!
搜索單詞The post build plugin runs on the manager and doing it as you say will fail if you are working with slaves!
在插件頁面(您提供的鏈接)上,看看那里的解決方法是否有幫助。
文件夾/views/build_view/temp
存在?
如果沒有,您將需要執行new File( "${manager.build.workspace.remote}/temp" ).mkdirs()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.