mirror of
https://github.com/SAP/jenkins-library.git
synced 2024-12-12 10:55:20 +02:00
70 lines
2.9 KiB
Groovy
70 lines
2.9 KiB
Groovy
import com.sap.piper.Utils
|
|
import groovy.transform.Field
|
|
import com.sap.piper.ConfigurationHelper
|
|
import com.sap.piper.ConfigurationLoader
|
|
|
|
import static com.sap.piper.Prerequisites.checkScript
|
|
|
|
@Field String STEP_NAME = getClass().getName()
|
|
@Field Set GENERAL_CONFIG_KEYS = []
|
|
@Field STAGE_STEP_KEYS = [
|
|
/** If set to true, the default scm checkout is skipped */
|
|
'skipCheckout',
|
|
/**
|
|
* Optional list of file paths or URLs, which must point to YAML content. These work exactly like
|
|
* `customDefaults`, but from local or remote files instead of library resources. They are merged with and
|
|
* take precedence over `customDefaults`.
|
|
*/
|
|
'customDefaultsFromFiles',
|
|
/**
|
|
* Mandatory if you skip the checkout. Then you need to unstash your workspace to get the e.g. configuration.
|
|
*/
|
|
'stashContent'
|
|
]
|
|
@Field Set STEP_CONFIG_KEYS = GENERAL_CONFIG_KEYS.plus(STAGE_STEP_KEYS)
|
|
@Field Set PARAMETER_KEYS = STEP_CONFIG_KEYS
|
|
/**
|
|
* This stage initializes the ABAP Environment Pipeline run
|
|
*/
|
|
void call(Map parameters = [:]) {
|
|
def utils = parameters.juStabUtils ?: new Utils()
|
|
def script = checkScript(this, parameters) ?: this
|
|
def stageName = parameters.stageName?:env.STAGE_NAME
|
|
|
|
piperStageWrapper (script: script, stageName: stageName, stashContent: [], stageLocking: false, ordinal: 1, telemetryDisabled: true) {
|
|
|
|
def skipCheckout = parameters.skipCheckout
|
|
if (skipCheckout != null && !(skipCheckout instanceof Boolean)) {
|
|
error "[${STEP_NAME}] Parameter skipCheckout has to be of type boolean. Instead got '${skipCheckout.class.getName()}'"
|
|
}
|
|
if (!skipCheckout) {
|
|
checkout scm
|
|
}
|
|
else {
|
|
def stashContent = parameters.stashContent
|
|
if(stashContent == null || stashContent.size() == 0) {
|
|
error "[${STEP_NAME}] needs stashes if you skip checkout"
|
|
}
|
|
utils.unstashAll(stashContent)
|
|
}
|
|
setupCommonPipelineEnvironment script: script,
|
|
customDefaults: parameters.customDefaults,
|
|
customDefaultsFromFiles: parameters.customDefaultsFromFiles
|
|
|
|
// load default & individual configuration
|
|
Map config = ConfigurationHelper.newInstance(this)
|
|
.loadStepDefaults()
|
|
.addIfEmpty('stageConfigResource', 'com.sap.piper/pipeline/abapEnvironmentPipelineStages.yml')
|
|
.addIfEmpty('stashSettings', 'com.sap.piper/pipeline/abapEnvironmentPipelineStashSettings.yml')
|
|
.withMandatoryProperty('stageConfigResource')
|
|
.use()
|
|
|
|
Map stashConfiguration = readYaml(text: libraryResource(config.stashSettings))
|
|
if (config.verbose) echo "Stash config: ${stashConfiguration}"
|
|
script.commonPipelineEnvironment.configuration.stageStashes = stashConfiguration
|
|
|
|
//handling of stage and step activation
|
|
piperInitRunStageConfiguration script: script, stageConfigResource: config.stageConfigResource
|
|
}
|
|
}
|