使用Jenkins写入工作区中的json文件

我有一个jenkins工作,几乎没有参数设置,我在工作区中有一个 JSON文件,必须使用我通过jenkins的参数进行更新.

例:

我有以下参数,我将从触发该作业的用户输入:

>环境(考虑用户选择“ENV2”)
>文件名(考虑用户保持默认值)

我在run / job.json下的工作区中有一个json文件,其中包含以下内容:

{
    environment: "ENV1",
    filename: "abc.txt"
}

现在,无论用户在触发作业之前给出的值是什么,都必须在job.json中替换.

因此,当用户触发作业时,job.json文件应为:

{
    environment: "ENV2",
    filename: "abc.txt"
}

请注意json中必须更新的环境值.

我试过https://wiki.jenkins-ci.org/display/JENKINS/Config+File+Provider+Plugin插件.但是我无法找到有关参数化值的任何帮助.

请建议配置此插件或建议任何其他插件,它可以满足我的目的.

Config File Provider Plugin不允许您将参数传递给配置文件.您可以使用任何脚本语言解决您的问题.我最喜欢的方法是使用 Groovy plugin.点击一个复选框“执行系统Groovy脚本”并粘贴以下脚本:

import groovy.json.*

// read build parameters
env = build.getEnvironment(listener)
environment = env.get('environment')
filename = env.get('filename')

// prepare json
def builder = new JsonBuilder()
builder environment: environment, filename: filename
json = builder.toPrettyString()

// print to console and write to a file
println json
new File(build.workspace.toString() + "\\job.json").write(json)

输出样本:

{
    "environment": "ENV2",
    "filename": "abc.txt"
}
相关文章
相关标签/搜索