使用Email Ext Jenkins插件从文件追加内容

时间:2014-01-19 11:38:48

标签: groovy jenkins email-ext

我一直在修改Email Ext插件提供的默认groovy模板。

首先,我必须修改JUnitTestResult并根据需要进行格式化。我在it.JUnitTestResult中找到,it是对ScriptContentBuildWrapper类的引用。然后我可以根据需要格式化JUnitTestResult。

现在我面临第二个困难:

  • 除了这些内容之外,我还需要从驻留在作业工作区的文件中追加更多内容。如何访问驻留在工作空间目录中的文件。

我很想知道如何访问构建上下文对象。什么是java类名和类似的东西。

3 个答案:

答案 0 :(得分:0)

只需使用build即可返回AbstractBuild

尝试 -

build.workspace

返回构建构建的目录的FilePath。

请参阅AbstractBuild.getWorkspace

提示:在Groovy中,you can avoid the "get" and use field-like access notation

答案 1 :(得分:0)

根据您使用的email-ext版本,您可以使用提供的令牌来访问内容,因此,如果您查看令牌帮助,您将看到许多令牌。这些可以在groovy模板中用来做同样的事情。例如,可以通过执行FILE(路径:'path / to / file')在Groovy中使用FILE令牌,它将替换为文件的内容(仅适用于工作空间下方的文件)。

答案 2 :(得分:0)

构建对象不能直接在所有groovy脚本中使用(例如groovy构建脚本,groovy系统构建脚本,groovy构建后脚本,在email-ext中评估的groovy脚本)。在groovy脚本中为正在运行的构建获取构建对象的最便携方式是:

import hudson.model.*
def build = Thread.currentThread().executable

然后你可以像这样获得工作区和访问文件:

workspace = build.getEnvVars()["WORKSPACE"]
afilename = workspace + "/myfile"
afile = new File(afilename);
// afile.write "write new file"
// afile << "append to file"
// def lines = afile.readLines()