mirror of
https://github.com/firstBitMarksistskaya/jenkins-lib.git
synced 2025-03-20 21:38:35 +02:00
Исправлен мерж секретов
This commit is contained in:
parent
1a3ee80033
commit
8d9ed2ff08
src/ru/pulsar/jenkins/library/configuration
test/unit
groovy/ru/pulsar/jenkins/library/configuration
resources
@ -28,19 +28,27 @@ class ConfigurationReader implements Serializable {
|
|||||||
return mergeConfigurations(globalConfiguration, jobConfiguration);
|
return mergeConfigurations(globalConfiguration, jobConfiguration);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NonCPS
|
|
||||||
private static JobConfiguration mergeConfigurations(
|
private static JobConfiguration mergeConfigurations(
|
||||||
JobConfiguration baseConfiguration,
|
JobConfiguration baseConfiguration,
|
||||||
JobConfiguration configurationToMerge
|
JobConfiguration configurationToMerge
|
||||||
) {
|
) {
|
||||||
BeanUtils.describe(configurationToMerge).entrySet().stream()
|
def nonMergeableSettings = Arrays.asList("secrets").toSet()
|
||||||
.filter({ e -> e.getValue() != null })
|
|
||||||
.filter({ e -> e.getKey() != "class" })
|
mergeObjects(baseConfiguration, configurationToMerge, nonMergeableSettings);
|
||||||
.filter({ e -> e.getKey() != "metaClass" })
|
mergeObjects(baseConfiguration.secrets, configurationToMerge.secrets, Collections.emptySet())
|
||||||
.forEach {e ->
|
|
||||||
BeanUtils.setProperty(baseConfiguration, e.getKey(), e.getValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
return baseConfiguration;
|
return baseConfiguration;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NonCPS
|
||||||
|
private static <T extends Object> void mergeObjects(T baseObject, T objectToMerge, Set<String> nonMergeableSettings) {
|
||||||
|
BeanUtils.describe(objectToMerge).entrySet().stream()
|
||||||
|
.filter({ e -> e.getValue() != null })
|
||||||
|
.filter({ e -> e.getKey() != "class" })
|
||||||
|
.filter({ e -> e.getKey() != "metaClass" })
|
||||||
|
.filter({ e -> !nonMergeableSettings.contains(e.getKey()) })
|
||||||
|
.forEach {e ->
|
||||||
|
BeanUtils.setProperty(baseObject, e.getKey(), e.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,10 @@ class ConfigurationReaderTest {
|
|||||||
// then
|
// then
|
||||||
assertThat(jobConfiguration.getV8version()).isEqualTo("8.3.14.1944");
|
assertThat(jobConfiguration.getV8version()).isEqualTo("8.3.14.1944");
|
||||||
assertThat(jobConfiguration.getSonarScannerToolName()).isEqualTo("sonar-scanner");
|
assertThat(jobConfiguration.getSonarScannerToolName()).isEqualTo("sonar-scanner");
|
||||||
|
assertThat(jobConfiguration.getSecrets())
|
||||||
|
.hasFieldOrPropertyWithValue("storage", "1234")
|
||||||
|
.hasFieldOrPropertyWithValue("storagePath", "UNKNOWN_ID")
|
||||||
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -1,3 +1,6 @@
|
|||||||
{
|
{
|
||||||
"v8version": "8.3.14.1944"
|
"v8version": "8.3.14.1944",
|
||||||
|
"secrets": {
|
||||||
|
"storage": "1234"
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user