Запись в файл json в рабочей области с помощью Jenkins
у меня есть задание Дженкинса с несколькими настройками параметров, и у меня есть файл JSON в рабочей области, который должен быть обновлен с параметрами, которые я передаю через Дженкинса.
пример:
у меня есть следующие параметры, которые я буду принимать от пользователя, который запускает задание:
- среда (рассмотрим выбор Пользователем "ENV2")
- Filename (считать пользователь сохраняет значение по умолчанию)
у меня есть файл json в моей рабочей области в разделе run / job.JSON со следующим содержанием:
{
environment: "ENV1",
filename: "abc.txt"
}
теперь любое значение, заданное пользователем перед запуском задания, должно быть заменено в задании.формат JSON.
Итак, когда пользователь запускает задание.файл json должен быть:
{
environment: "ENV2",
filename: "abc.txt"
}
обратите внимание на значение среды в json, которое должно быть обновлено.
Я пробовал https://wiki.jenkins-ci.org/display/JENKINS/Config + файл + провайдер + плагин плагин. Но я не могу найдите любую помощь по параметризации значений.
пожалуйста, предложите настроить этот плагин или предложить любой другой плагин, который может служить моей цели.
2 ответов
плагин поставщика конфигурационных файлов не позволяет передавать параметры в конфигурационные файлы. Вы можете решить свою проблему с любым языком сценариев. Мой любимый подход-использовать в 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"
}
Я буду держать его простым. Пакетный файл windows или сценарий оболочки (в зависимости от ОС), который будет считывать значения среды и открывать файл JSON и вносить изменения.