Vim*_*vam 6 jenkins jenkins-plugins
我有一个jenkins工作,几乎没有参数设置,我在工作区中有一个JSON文件,必须使用我通过jenkins的参数进行更新.
例:
我有以下参数,我将从触发该作业的用户输入:
我在run/job.json下的工作区中有一个json文件,其中包含以下内容:
{
environment: "ENV1",
filename: "abc.txt"
}
Run Code Online (Sandbox Code Playgroud)
现在,无论用户在触发作业之前给出的值是什么,都必须在job.json中替换.
因此,当用户触发作业时,job.json文件应为:
{
environment: "ENV2",
filename: "abc.txt"
}
Run Code Online (Sandbox Code Playgroud)
请注意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)
Run Code Online (Sandbox Code Playgroud)
输出样本:
{
"environment": "ENV2",
"filename": "abc.txt"
}
Run Code Online (Sandbox Code Playgroud)
使用Pipeline Utility Steps插件,这很容易实现。
jsonfile = readJSON file: 'path/to/your.json'
jsonfile['environment'] = 'ENV2'
writeJSON file: 'path/to/your.json', json: jsonfile
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15298 次 |
| 最近记录: |