github.com/ouraigua/jenkins-library@v0.0.0-20231028010029-fbeaf2f3aa9b/src/com/sap/piper/cm/StepHelpers.groovy (about)

     1  package com.sap.piper.cm
     2  
     3  import com.cloudbees.groovy.cps.NonCPS
     4  
     5  public class StepHelpers {
     6  
     7      @Deprecated // use go implementation instead
     8      public static def getTransportRequestId(ChangeManagement cm, def script, Map configuration) {
     9  
    10          def transportRequestId = configuration.transportRequestId
    11  
    12          if(transportRequestId?.trim()) {
    13  
    14              script.echo "[INFO] Transport request id '${transportRequestId}' retrieved from parameters."
    15              return transportRequestId
    16  
    17          }
    18  
    19          transportRequestId = script.commonPipelineEnvironment.getValue('transportRequestId')
    20  
    21          if(transportRequestId?.trim()) {
    22              script.echo "[INFO] Transport request id '${transportRequestId}' retrieved from common pipeline environment."
    23              return transportRequestId
    24          }
    25  
    26          script.echo "[INFO] Retrieving transport request id from commit history [from: ${configuration.changeManagement.git.from}, to: ${configuration.changeManagement.git.to}]." +
    27              " Searching for pattern '${configuration.changeManagement.transportRequestLabel}'. Searching with format '${configuration.changeManagement.git.format}'."
    28  
    29          try {
    30              transportRequestId = cm.getTransportRequestId(
    31                                                              configuration.changeManagement.git.from,
    32                                                              configuration.changeManagement.git.to,
    33                                                              configuration.changeManagement.transportRequestLabel,
    34                                                              configuration.changeManagement.git.format
    35                                                          )
    36  
    37              script.commonPipelineEnvironment.setValue('transportRequestId', "${transportRequestId}")
    38              script.echo "[INFO] Transport request id '${transportRequestId}' retrieved from commit history"
    39  
    40          } catch(ChangeManagementException ex) {
    41              script.echo "[WARN] Cannot retrieve transportRequestId from commit history: ${ex.getMessage()}."
    42          }
    43  
    44          transportRequestId
    45      }
    46  
    47      @Deprecated // use go implementation instead
    48      public static getChangeDocumentId(ChangeManagement cm, def script, Map configuration) {
    49          def changeDocumentId = configuration.changeDocumentId
    50  
    51          if(changeDocumentId?.trim()) {
    52  
    53              script.echo "[INFO] ChangeDocumentId '${changeDocumentId}' retrieved from parameters."
    54              return changeDocumentId
    55          }
    56  
    57          changeDocumentId = script.commonPipelineEnvironment.getChangeDocumentId()
    58  
    59          if(changeDocumentId?.trim()) {
    60  
    61              script.echo "[INFO] ChangeDocumentId '${changeDocumentId}' retrieved from common pipeline environment."
    62              return changeDocumentId
    63          }
    64  
    65          script.echo "[INFO] Retrieving ChangeDocumentId from commit history [from: ${configuration.changeManagement.git.from}, to: ${configuration.changeManagement.git.to}]." +
    66              "Searching for pattern '${configuration.changeManagement.changeDocumentLabel}'. Searching with format '${configuration.changeManagement.git.format}'."
    67  
    68          try {
    69              changeDocumentId = cm.getChangeDocumentId(
    70                                                          configuration.changeManagement.git.from,
    71                                                          configuration.changeManagement.git.to,
    72                                                          configuration.changeManagement.changeDocumentLabel,
    73                                                          configuration.changeManagement.git.format
    74                                                      )
    75  
    76              script.echo "[INFO] ChangeDocumentId '${changeDocumentId}' retrieved from commit history"
    77              script.commonPipelineEnvironment.setChangeDocumentId(changeDocumentId)
    78  
    79          } catch(ChangeManagementException ex) {
    80              script.echo "[WARN] Cannot retrieve changeDocumentId from commit history: ${ex.getMessage()}."
    81          }
    82  
    83          return changeDocumentId
    84      }
    85  
    86      public static def getTransportRequestId(def script, Map configuration) {
    87  
    88          def transportRequestId = configuration.transportRequestId
    89  
    90          if(transportRequestId?.trim()) {
    91  
    92              script.echo "[INFO] transportRequestId '${transportRequestId}' retrieved from parameters."
    93              return transportRequestId
    94  
    95          }
    96  
    97          transportRequestId = script.commonPipelineEnvironment.getValue('transportRequestId')
    98  
    99          if(transportRequestId?.trim()) {
   100              script.echo "[INFO] transportRequestId '${transportRequestId}' retrieved from common pipeline environment."
   101              return transportRequestId
   102          }
   103  
   104          script.echo "[INFO] Retrieving transportRequestId from commit history [" +
   105              "from: ${configuration.changeManagement.git.from}, " +
   106              "to: ${configuration.changeManagement.git.to}]." +
   107              "transportRequestLabel: '${configuration.changeManagement.transportRequestLabel}']."
   108  
   109          script.transportRequestReqIDFromGit(script: script,
   110              gitFrom: configuration.changeManagement.git.from,
   111              gitTo: configuration.changeManagement.git.to,
   112              transportRequestLabel: configuration.changeManagement.transportRequestLabel
   113          )
   114  
   115          transportRequestId = script.commonPipelineEnvironment.getValue('transportRequestId')
   116          if(transportRequestId != null) {
   117              script.echo "[INFO] transportRequestId '${transportRequestId}' retrieved from commit history"
   118          }
   119          else{
   120              script.echo "[WARN] Cannot retrieve transportRequestId from commit history [" +
   121                  "from: ${configuration.changeManagement.git.from}, " +
   122                  "to: ${configuration.changeManagement.git.to}, " +
   123                  "transportRequestLabel: '${configuration.changeManagement.transportRequestLabel}']."
   124          }
   125  
   126          return transportRequestId
   127      }
   128  
   129      public static getChangeDocumentId(def script, Map configuration) {
   130          def changeDocumentId = configuration.changeDocumentId
   131  
   132          if(changeDocumentId?.trim()) {
   133  
   134              script.echo "[INFO] changeDocumentId '${changeDocumentId}' retrieved from parameters."
   135              return changeDocumentId
   136          }
   137  
   138          changeDocumentId = script.commonPipelineEnvironment.getValue('changeDocumentId')
   139  
   140          if(changeDocumentId?.trim()) {
   141  
   142              script.echo "[INFO] changeDocumentId '${changeDocumentId}' retrieved from common pipeline environment."
   143              return changeDocumentId
   144          }
   145  
   146          script.echo "[INFO] Retrieving changeDocumentId from commit history [" +
   147              "from: ${configuration.changeManagement.git.from}, " +
   148              "to: ${configuration.changeManagement.git.to}, " +
   149              "changeDocumentLabel: '${configuration.changeManagement.changeDocumentLabel}']."
   150  
   151          script.transportRequestDocIDFromGit(script: script,
   152              gitFrom: configuration.changeManagement.git.from,
   153              gitTo: configuration.changeManagement.git.to,
   154              changeDocumentLabel: configuration.changeManagement.changeDocumentLabel
   155          )
   156  
   157          changeDocumentId = script.commonPipelineEnvironment.getValue('changeDocumentId')
   158  
   159          if(changeDocumentId == null) {
   160              script.echo "[WARN] Cannot retrieve changeDocumentId from commit history [" +
   161                  "from: ${configuration.changeManagement.git.from}, " +
   162                  "to: ${configuration.changeManagement.git.to}, " +
   163                  "changeDocumentLabel: '${configuration.changeManagement.changeDocumentLabel}']."
   164          }
   165          else {
   166              script.echo "[INFO] changeDocumentId '${changeDocumentId}' retrieved from commit history"
   167          }
   168  
   169          return changeDocumentId
   170      }
   171  
   172      @NonCPS
   173      static BackendType getBackendTypeAndLogInfoIfCMIntegrationDisabled(def script, Map configuration) {
   174  
   175          BackendType backendType
   176  
   177          try {
   178              backendType = configuration.changeManagement.type as BackendType
   179          } catch(IllegalArgumentException e) {
   180              script.error "Invalid backend type: '${configuration.changeManagement.type}'. " +
   181                  "Valid values: [${BackendType.values().join(', ')}]. " +
   182                  "Configuration: 'changeManagement/type'."
   183          }
   184  
   185          if (backendType == BackendType.NONE) {
   186              script.echo "[INFO] Change management integration intentionally switched off. " +
   187                  "In order to enable it provide 'changeManagement/type with one of " +
   188                  "[${BackendType.values().minus(BackendType.NONE).join(', ')}] and maintain " +
   189                  "other required properties like 'endpoint', 'credentialsId'."
   190          }
   191  
   192          return backendType
   193      }
   194  }