我正在使用多分支管道,并且希望具有分支特定的配置。我目前有一个默认配置,我想将其克隆到ID为“ $ {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)
}
但是需要在作业的(多管道)配置文件夹中创建
答案 0 :(得分:0)
我能够在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");