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  }