Add create tag to abapEnvironmentPipeline (#3870)

* Add alias

* Add step and defaults

* Add closing }

* Add test

* Remove alias

* initial copy

* Change step activation

* Change test

* Read foreign config

* Fix Syntax

* Test

* Test

* Only consider stage config

* Test config

* Test

* Test

* Change echo

* Fix

* Test

* Default test

* Uncomment

* Test different outputs

* Adapt Config

Co-authored-by: tiloKo <70266685+tiloKo@users.noreply.github.com>
This commit is contained in:
Daniel Mieg
2022-10-12 10:20:13 +02:00
committed by GitHub
co-authored by tiloKo
parent 4e0b4824f0
commit ebac0da332
4 changed files with 28 additions and 8 deletions
@@ -15,7 +15,7 @@ stages:
cfServiceKeyName: 'sap_com_0510'
'Clone Repositories':
cfServiceKeyName: 'sap_com_0510'
cfServiceKeyName: 'sap_com_0510_clone_stage_default'
cfServiceKeyConfig: '{"scenario_id":"SAP_COM_0510","type":"basic"}'
ordinal: 30
@@ -40,12 +40,13 @@ class AbapEnvironmentPipelineStageBuildTest extends BasePiperTest {
helper.registerAllowedMethod('abapEnvironmentAssembleConfirm', [Map.class], {m -> stepsCalled.add('abapEnvironmentAssembleConfirm')})
helper.registerAllowedMethod('abapAddonAssemblyKitCreateTargetVector', [Map.class], {m -> stepsCalled.add('abapAddonAssemblyKitCreateTargetVector')})
helper.registerAllowedMethod('abapAddonAssemblyKitPublishTargetVector', [Map.class], {m -> stepsCalled.add('abapAddonAssemblyKitPublishTargetVector')})
helper.registerAllowedMethod('abapEnvironmentCreateTag', [Map.class], {m -> stepsCalled.add('abapEnvironmentCreateTag')})
}
@Test
void testAbapEnvironmentRunTestsWithoutHost() {
nullScript.commonPipelineEnvironment.configuration.runStage = [
'Build': true
'Build': true,
]
jsr.step.abapEnvironmentPipelineStageBuild(script: nullScript)
@@ -57,6 +58,8 @@ class AbapEnvironmentPipelineStageBuildTest extends BasePiperTest {
'abapEnvironmentAssembleConfirm',
'abapAddonAssemblyKitCreateTargetVector',
'abapAddonAssemblyKitPublishTargetVector'))
assertThat(stepsCalled, not(hasItems('abapEnvironmentCreateTag')))
}
@Test
@@ -64,7 +67,7 @@ class AbapEnvironmentPipelineStageBuildTest extends BasePiperTest {
nullScript.commonPipelineEnvironment.configuration.runStage = [
'Build': true
]
jsr.step.abapEnvironmentPipelineStageBuild(script: nullScript, host: 'abc.com')
jsr.step.abapEnvironmentPipelineStageBuild(script: nullScript, host: 'abc.com', generateTagForAddonComponentVersion: true)
assertThat(stepsCalled, hasItems('abapEnvironmentAssemblePackages',
'abapEnvironmentBuild',
@@ -72,7 +75,8 @@ class AbapEnvironmentPipelineStageBuildTest extends BasePiperTest {
'abapAddonAssemblyKitReleasePackages',
'abapEnvironmentAssembleConfirm',
'abapAddonAssemblyKitCreateTargetVector',
'abapAddonAssemblyKitPublishTargetVector'))
'abapAddonAssemblyKitPublishTargetVector',
'abapEnvironmentCreateTag'))
assertThat(stepsCalled, not(hasItems('cloudFoundryCreateServiceKey')))
}
+1 -1
View File
@@ -8,7 +8,7 @@ void call(parameters) {
stage('Init') {
steps {
abapEnvironmentPipelineStageInit script: parameters.script, customDefaults: ['com.sap.piper/pipeline/abapEnvironmentPipelineStageDefaults.yml'].plus(parameters.customDefaults ?: [])
abapEnvironmentPipelineStageInit script: parameters.script, customDefaults: ['com.sap.piper/pipeline/abapEnvironmentPipelineDefaults.yml'].plus(parameters.customDefaults ?: [])
}
}
+18 -2
View File
@@ -20,7 +20,9 @@ import static com.sap.piper.Prerequisites.checkScript
'abapAddonAssemblyKitCreateTargetVector',
'abapAddonAssemblyKitPublishTargetVector',
/** Parameter for host config */
'host'
'host',
'generateTagForAddonProductVersion',
'generateTagForAddonComponentVersion'
]
@Field Set STEP_CONFIG_KEYS = GENERAL_CONFIG_KEYS.plus(STAGE_STEP_KEYS)
@Field Set PARAMETER_KEYS = STEP_CONFIG_KEYS
@@ -52,6 +54,20 @@ void call(Map parameters = [:]) {
abapEnvironmentAssembleConfirm script: parameters.script
abapAddonAssemblyKitCreateTargetVector script: parameters.script
abapAddonAssemblyKitPublishTargetVector(script: parameters.script, targetVectorScope: 'T')
if (config.generateTagForAddonComponentVersion || config.generateTagForAddonProductVersion) {
try {
Set keys = [ 'cfServiceKeyName' ]
Map configClone = ConfigurationHelper.newInstance(this)
.mixin(ConfigurationLoader.defaultStageConfiguration(script, 'Clone Repositories'))
.mixinGeneralConfig(script.commonPipelineEnvironment, keys)
.mixinStepConfig(script.commonPipelineEnvironment, keys)
.mixinStageConfig(script.commonPipelineEnvironment, 'Clone Repositories', keys)
.mixin(parameters, keys)
.use()
abapEnvironmentCreateTag(script: parameters.script, cfServiceKeyName: configClone.cfServiceKeyName)
} catch (e) {
echo 'Tag creation failed: ' + e.message
}
}
}
}