From ebac0da332e885b5df46030789e47ae124baf2f8 Mon Sep 17 00:00:00 2001 From: Daniel Mieg <56156797+DanielMieg@users.noreply.github.com> Date: Wed, 12 Oct 2022 10:20:13 +0200 Subject: [PATCH] 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> --- ...ml => abapEnvironmentPipelineDefaults.yml} | 2 +- .../AbapEnvironmentPipelineStageBuild.groovy | 12 +++++++---- vars/abapEnvironmentPipeline.groovy | 2 +- vars/abapEnvironmentPipelineStageBuild.groovy | 20 +++++++++++++++++-- 4 files changed, 28 insertions(+), 8 deletions(-) rename resources/com.sap.piper/pipeline/{abapEnvironmentPipelineStageDefaults.yml => abapEnvironmentPipelineDefaults.yml} (95%) diff --git a/resources/com.sap.piper/pipeline/abapEnvironmentPipelineStageDefaults.yml b/resources/com.sap.piper/pipeline/abapEnvironmentPipelineDefaults.yml similarity index 95% rename from resources/com.sap.piper/pipeline/abapEnvironmentPipelineStageDefaults.yml rename to resources/com.sap.piper/pipeline/abapEnvironmentPipelineDefaults.yml index 7a8fcfec5..8e90c8815 100644 --- a/resources/com.sap.piper/pipeline/abapEnvironmentPipelineStageDefaults.yml +++ b/resources/com.sap.piper/pipeline/abapEnvironmentPipelineDefaults.yml @@ -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 diff --git a/test/groovy/templates/AbapEnvironmentPipelineStageBuild.groovy b/test/groovy/templates/AbapEnvironmentPipelineStageBuild.groovy index 20b76e715..4d84a229c 100644 --- a/test/groovy/templates/AbapEnvironmentPipelineStageBuild.groovy +++ b/test/groovy/templates/AbapEnvironmentPipelineStageBuild.groovy @@ -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'))) } diff --git a/vars/abapEnvironmentPipeline.groovy b/vars/abapEnvironmentPipeline.groovy index 2135cec00..a72928c16 100644 --- a/vars/abapEnvironmentPipeline.groovy +++ b/vars/abapEnvironmentPipeline.groovy @@ -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 ?: []) } } diff --git a/vars/abapEnvironmentPipelineStageBuild.groovy b/vars/abapEnvironmentPipelineStageBuild.groovy index d575d9aa4..e9d6ef346 100644 --- a/vars/abapEnvironmentPipelineStageBuild.groovy +++ b/vars/abapEnvironmentPipelineStageBuild.groovy @@ -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 + } + } } - }