Config-file-provider-plugin: Создайте новый конфиг в папке конфигурации с несколькими каналами в jenkinsfile - PullRequest
0 голосов
/ 11 июня 2019

Я использую многоотраслевой конвейер и хотел бы иметь специфичные для отрасли конфиги.В настоящее время у меня есть конфигурация по умолчанию, которую я хотел бы клонировать в конфигурацию с идентификатором "$ {BRANCH_NAME} _config".Я использую плагин файла jenkins по умолчанию, поэтому в хранилище нет кода jenkins, и использую плагин Config-file-provider-plugin для обработки файла конфигурации и добился определенного прогресса.

В настоящее время у меня есть возможность создатьглобальная конфигурация со следующим кодом:

configFileProvider([configFile(fileId: 'DEFAULT_JSON_CONFIG', variable: 'default_config_content')]) {
    def instance = Jenkins.getInstance()
    def provider = instance.getExtensionList('org.jenkinsci.plugins.configfiles.json.JsonConfig$JsonConfigProvider')[0]
    def config = new org.jenkinsci.plugins.configfiles.json.JsonConfig("${BRANCH_NAME}_config", "Config for ${BRANCH_NAME}", "Branch config ${BRANCH_NAME}", "$default_config_content")
    provider.save(config)
}

Но необходимо создать его в папке конфигурации задания (многопоточной)

1 Ответ

0 голосов
/ 13 июня 2019

Мне удалось реализовать это с помощью JENKINS-56305

def folder = Jenkins.instance.getItemByFullName('jobName');
def action = folder.getAction(org.jenkinsci.plugins.configfiles.folder.FolderConfigFileAction.class);
def store = action.getStore();
def config = new org.jenkinsci.plugins.configfiles.json.JsonConfig("XXXX_config", "Config for XXXX", "Branch config XXXX", "{A:B}");
// save the new config
store.save(config);
// get the new config
def jsonConfig = store.getById("XXXX_config");
// remove the config
store.remove("XXXX_config");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...