簡體   English   中英

通過jenkins post-groovy腳本寫入文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM