Запись в файл 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 и вносить изменения.