我有一个很少设置参数的jenkins作业,并且在工作区中有一个JSON文件,该文件必须使用通过jenkins传递的参数进行更新。
例:
我有以下参数,我将从触发作业的用户那里获取输入:
我的工作空间中有一个json文件,位于run / job.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插件。选中“执行系统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" }