免责声明 - 我不是开发者:)
我创建了一个完美的Jenkins参数化作业。但是,我想吐出或导出或回显参数及其值到纯文本文件。我无法找到任何简单的方法来做到这一点。
具有讽刺意味的是,Jenkins确实回应了我在“构建”工作时所需的确切信息,并且它仍在构建历史记录列中。然后构建完成,信息消失。它以我需要的格式显示每个参数加上的值。如何将此信息写入纯文本文件?
EG:这就是它的显示方式 建立历史
32(PENDING - ???)
servername=myservername domaindir=/domaindirectoryspecified/ logdir=/logdirectoryspecified/ username=myuserid domainname=mynewdomainname
31 Jan 3,2014 01:05:58 PM
2014年1月30日上午11:01:45
答案 0 :(得分:1)
在作业配置中添加“执行Windows批处理命令”类型的构建步骤,并将参数值写入文件 - 它们将作为环境变量提供。我对Windows并不是很熟悉,但是这样的事情可以解决这个问题:
@echo off
IF EXIST file goto skip
(echo servername=%servername%) >file
(echo domaindir=%domaindir%) >>file
...
:skip
(我从this SO answer获得了上述代码)
请注意,您创建的文件将相对于构建的工作空间目录,因此将被下一个构建覆盖。如果你想让它更永久保存,请使用绝对路径,例如C:\ DIR \文件
答案 1 :(得分:0)
这个问题的确是一个插件:
https://wiki.jenkins-ci.org/display/JENKINS/Export+Parameters+Plugin
或者,如果您需要以自己的方式导出参数,例如,如果您需要从"文本参数" 导出多行上下文,您可以执行此操作它带有System Groovy Script,同样:
envVars = build.getEnvironment()
data_var = "YOUR_PARAMETER_NAME"
data = envVars.get(data_var)
data_file_path = build.workspace.toString() + "/" + data_var + ".txt"
if(build.workspace.isRemote())
{
channel = build.workspace.channel
fp = new hudson.FilePath(channel, data_file_path)
} else {
fp = new hudson.FilePath(data_file_path)
}
if(fp != null)
{
fp.write(data, null)
}