github.com/SAP/jenkins-library@v1.362.0/vars/cloudFoundryDeploy.groovy (about) 1 import com.sap.piper.Utils 2 import groovy.transform.Field 3 import static com.sap.piper.Prerequisites.checkScript 4 5 @Field String STEP_NAME = getClass().getName() 6 @Field String METADATA_FILE = 'metadata/cloudFoundryDeploy.yaml' 7 8 void call(Map parameters = [:]) { 9 final script = checkScript(this, parameters) ?: this 10 String stageName = parameters.stageName ?: env.STAGE_NAME 11 12 def utils = parameters.juStabUtils ?: new Utils() 13 utils.unstashAll(["deployDescriptor"]) 14 List credentials = [ 15 [type: 'usernamePassword', id: 'cfCredentialsId', env: ['PIPER_username', 'PIPER_password']], 16 [type: 'usernamePassword', id: 'dockerCredentialsId', env: ['PIPER_dockerUsername', 'PIPER_dockerPassword']] 17 ] 18 19 Map mtaExtensionCredentials = parameters.mtaExtensionCredentials ?: script.commonPipelineEnvironment.getStepConfiguration(STEP_NAME, stageName).mtaExtensionCredentials 20 21 if (mtaExtensionCredentials) { 22 mtaExtensionCredentials.each { key, credentialsId -> 23 echo "[INFO]${STEP_NAME}] Preparing credential for being used by piper-go. key: ${key}, credentialsId is: ${credentialsId}, exposed as environment variable ${toEnvVarKey(credentialsId)}" 24 credentials << [type: 'token', id: credentialsId, env: [toEnvVarKey(credentialsId)], resolveCredentialsId: false] 25 } 26 } 27 piperExecuteBin(parameters, STEP_NAME, METADATA_FILE, credentials) 28 } 29 30 /* 31 * Inserts underscores before all upper case letters which are not already 32 * have an underscore before, replaces any non letters/digits with underscore 33 * and transforms all lower case letters to upper case. 34 */ 35 private static String toEnvVarKey(String key) { 36 key = key.replaceAll(/[^A-Za-z0-9]/, "_") 37 key = key.replaceAll(/([a-z0-9])([A-Z])/, /$1_$2/) 38 return key.toUpperCase() 39 }