Jenkins-Parameterized build - 将参数+值导出到文本文件?

时间:2014-01-06 20:02:17

标签: jenkins parameterized

免责声明 - 我不是开发者:)

我创建了一个完美的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

2 个答案:

答案 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)
}