mirror of
https://github.com/SAP/jenkins-library.git
synced 2024-12-12 10:55:20 +02:00
Abap pipeline build stage skip create service key (#3832)
* CreateServiceKey only if host was not configured
This commit is contained in:
parent
d28a48896c
commit
be5e850eab
@ -0,0 +1,79 @@
|
|||||||
|
package templates
|
||||||
|
|
||||||
|
import org.junit.Before
|
||||||
|
import org.junit.Rule
|
||||||
|
import org.junit.Test
|
||||||
|
import org.junit.rules.RuleChain
|
||||||
|
import util.BasePiperTest
|
||||||
|
import util.JenkinsReadYamlRule
|
||||||
|
import util.JenkinsStepRule
|
||||||
|
import util.PipelineWhenException
|
||||||
|
import util.Rules
|
||||||
|
|
||||||
|
import static org.hamcrest.Matchers.*
|
||||||
|
import static org.junit.Assert.assertThat
|
||||||
|
|
||||||
|
class AbapEnvironmentPipelineStageBuildTest extends BasePiperTest {
|
||||||
|
private JenkinsStepRule jsr = new JenkinsStepRule(this)
|
||||||
|
|
||||||
|
@Rule
|
||||||
|
public RuleChain rules = Rules
|
||||||
|
.getCommonRules(this)
|
||||||
|
.around(new JenkinsReadYamlRule(this))
|
||||||
|
.around(jsr)
|
||||||
|
|
||||||
|
private stepsCalled = []
|
||||||
|
|
||||||
|
@Before
|
||||||
|
void init() {
|
||||||
|
binding.variables.env.STAGE_NAME = 'Build'
|
||||||
|
|
||||||
|
helper.registerAllowedMethod('piperStageWrapper', [Map.class, Closure.class], {m, body ->
|
||||||
|
assertThat(m.stageName, is('Build'))
|
||||||
|
return body()
|
||||||
|
})
|
||||||
|
helper.registerAllowedMethod('cloudFoundryCreateServiceKey', [Map.class], {m -> stepsCalled.add('cloudFoundryCreateServiceKey')})
|
||||||
|
helper.registerAllowedMethod('abapEnvironmentAssemblePackages', [Map.class], {m -> stepsCalled.add('abapEnvironmentAssemblePackages')})
|
||||||
|
helper.registerAllowedMethod('abapEnvironmentBuild', [Map.class], {m -> stepsCalled.add('abapEnvironmentBuild')})
|
||||||
|
helper.registerAllowedMethod('abapAddonAssemblyKitRegisterPackages', [Map.class], {m -> stepsCalled.add('abapAddonAssemblyKitRegisterPackages')})
|
||||||
|
helper.registerAllowedMethod('abapAddonAssemblyKitReleasePackages', [Map.class], {m -> stepsCalled.add('abapAddonAssemblyKitReleasePackages')})
|
||||||
|
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')})
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testAbapEnvironmentRunTestsWithoutHost() {
|
||||||
|
nullScript.commonPipelineEnvironment.configuration.runStage = [
|
||||||
|
'Build': true
|
||||||
|
]
|
||||||
|
jsr.step.abapEnvironmentPipelineStageBuild(script: nullScript)
|
||||||
|
|
||||||
|
assertThat(stepsCalled, hasItems('cloudFoundryCreateServiceKey',
|
||||||
|
'abapEnvironmentAssemblePackages',
|
||||||
|
'abapEnvironmentBuild',
|
||||||
|
'abapAddonAssemblyKitRegisterPackages',
|
||||||
|
'abapAddonAssemblyKitReleasePackages',
|
||||||
|
'abapEnvironmentAssembleConfirm',
|
||||||
|
'abapAddonAssemblyKitCreateTargetVector',
|
||||||
|
'abapAddonAssemblyKitPublishTargetVector'))
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testAbapEnvironmentRunTestsWithHost() {
|
||||||
|
nullScript.commonPipelineEnvironment.configuration.runStage = [
|
||||||
|
'Build': true
|
||||||
|
]
|
||||||
|
jsr.step.abapEnvironmentPipelineStageBuild(script: nullScript, host: 'abc.com')
|
||||||
|
|
||||||
|
assertThat(stepsCalled, hasItems('abapEnvironmentAssemblePackages',
|
||||||
|
'abapEnvironmentBuild',
|
||||||
|
'abapAddonAssemblyKitRegisterPackages',
|
||||||
|
'abapAddonAssemblyKitReleasePackages',
|
||||||
|
'abapEnvironmentAssembleConfirm',
|
||||||
|
'abapAddonAssemblyKitCreateTargetVector',
|
||||||
|
'abapAddonAssemblyKitPublishTargetVector'))
|
||||||
|
assertThat(stepsCalled, not(hasItems('cloudFoundryCreateServiceKey')))
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,5 +1,10 @@
|
|||||||
import groovy.transform.Field
|
import groovy.transform.Field
|
||||||
|
import com.cloudbees.groovy.cps.NonCPS
|
||||||
|
import com.sap.piper.GenerateStageDocumentation
|
||||||
|
import groovy.transform.Field
|
||||||
import com.sap.piper.Utils
|
import com.sap.piper.Utils
|
||||||
|
import com.sap.piper.ConfigurationHelper
|
||||||
|
import com.sap.piper.ConfigurationLoader
|
||||||
|
|
||||||
import static com.sap.piper.Prerequisites.checkScript
|
import static com.sap.piper.Prerequisites.checkScript
|
||||||
|
|
||||||
@ -7,13 +12,15 @@ import static com.sap.piper.Prerequisites.checkScript
|
|||||||
@Field Set GENERAL_CONFIG_KEYS = []
|
@Field Set GENERAL_CONFIG_KEYS = []
|
||||||
@Field STAGE_STEP_KEYS = [
|
@Field STAGE_STEP_KEYS = [
|
||||||
'cloudFoundryCreateServiceKey',
|
'cloudFoundryCreateServiceKey',
|
||||||
'abapAddonAssemblyKitReserveNextPackages',
|
|
||||||
'abapEnvironmentAssemblePackages',
|
'abapEnvironmentAssemblePackages',
|
||||||
|
'abapEnvironmentBuild',
|
||||||
'abapAddonAssemblyKitRegisterPackages',
|
'abapAddonAssemblyKitRegisterPackages',
|
||||||
'abapAddonAssemblyKitReleasePackages',
|
'abapAddonAssemblyKitReleasePackages',
|
||||||
'abapEnvironmentAssembleConfirm',
|
'abapEnvironmentAssembleConfirm',
|
||||||
'abapAddonAssemblyKitCreateTargetVector',
|
'abapAddonAssemblyKitCreateTargetVector',
|
||||||
'abapAddonAssemblyKitPublishTargetVector'
|
'abapAddonAssemblyKitPublishTargetVector',
|
||||||
|
/** Parameter for host config */
|
||||||
|
'host'
|
||||||
]
|
]
|
||||||
@Field Set STEP_CONFIG_KEYS = GENERAL_CONFIG_KEYS.plus(STAGE_STEP_KEYS)
|
@Field Set STEP_CONFIG_KEYS = GENERAL_CONFIG_KEYS.plus(STAGE_STEP_KEYS)
|
||||||
@Field Set PARAMETER_KEYS = STEP_CONFIG_KEYS
|
@Field Set PARAMETER_KEYS = STEP_CONFIG_KEYS
|
||||||
@ -24,8 +31,20 @@ void call(Map parameters = [:]) {
|
|||||||
def script = checkScript(this, parameters) ?: this
|
def script = checkScript(this, parameters) ?: this
|
||||||
def stageName = parameters.stageName?:env.STAGE_NAME
|
def stageName = parameters.stageName?:env.STAGE_NAME
|
||||||
|
|
||||||
|
// load default & individual configuration
|
||||||
|
Map config = ConfigurationHelper.newInstance(this)
|
||||||
|
.loadStepDefaults([:], stageName)
|
||||||
|
.mixin(ConfigurationLoader.defaultStageConfiguration(script, stageName))
|
||||||
|
.mixinGeneralConfig(script.commonPipelineEnvironment, GENERAL_CONFIG_KEYS)
|
||||||
|
.mixinStepConfig(script.commonPipelineEnvironment, STEP_CONFIG_KEYS)
|
||||||
|
.mixinStageConfig(script.commonPipelineEnvironment, stageName, STEP_CONFIG_KEYS)
|
||||||
|
.mixin(parameters, PARAMETER_KEYS)
|
||||||
|
.use()
|
||||||
|
|
||||||
piperStageWrapper (script: script, stageName: stageName, stashContent: [], stageLocking: false) {
|
piperStageWrapper (script: script, stageName: stageName, stashContent: [], stageLocking: false) {
|
||||||
|
if (!config.host) {
|
||||||
cloudFoundryCreateServiceKey script: parameters.script
|
cloudFoundryCreateServiceKey script: parameters.script
|
||||||
|
}
|
||||||
abapEnvironmentAssemblePackages script: parameters.script
|
abapEnvironmentAssemblePackages script: parameters.script
|
||||||
abapEnvironmentBuild(script: parameters.script, phase: 'GENERATION', downloadAllResultFiles: true, useFieldsOfAddonDescriptor: '[{"use":"Name","renameTo":"SWC"}]')
|
abapEnvironmentBuild(script: parameters.script, phase: 'GENERATION', downloadAllResultFiles: true, useFieldsOfAddonDescriptor: '[{"use":"Name","renameTo":"SWC"}]')
|
||||||
abapAddonAssemblyKitRegisterPackages script: parameters.script
|
abapAddonAssemblyKitRegisterPackages script: parameters.script
|
||||||
|
Loading…
Reference in New Issue
Block a user