Jenkins 파이프라인 작업

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 26분
  • 파이프라인에서 Jenkins 이러한 작업을 사용하여 데이터 모델과 상호 작용합니다 DevOps 구성 .

    중요사항:
    DevOps 구성 은 이제 더 이상 지원되지 않으며 새로운 활성화에 사용할 수 없습니다.

    Jenkins 스크립트 및 선언적 핍라인이 지원됩니다.

    이러한 작업은 목표를 달성하기 위해 특정 파이프라인 정의를 생성하기 위해 제공됩니다. 이러한 작업을 수행하는 명령을 Jenkins 파일에 추가합니다.
    • snDevOpsConfig

      구성 데이터를 업로드, 확인 및 게시하는 결합된 작업입니다.

    • snDevOpsConfigUpload

      에이전트 작업을 통해 구성 데이터를 DevOps 구성 업로드합니다.

    • snDevOpsConfigGetSnapshots

      특정 배포 가능 항목 또는 영향을 받는 모든 배포 가능 항목에 대한 스냅샷을 검색합니다.

    • snDevOpsConfigPublish

      지정된 애플리케이션 및 배포 가능 항목에 대한 스냅샷을 게시합니다.

    • snDevOpsConfigExport

      지정된 애플리케이션 및 배포 가능 항목에 대한 스냅샷을 익스포트합니다.

    • snDevOpsConfigRegisterPipeline

      변경 세트 및/또는 스냅샷을 파이프라인 실행에 연결합니다.

    • snDevOpsConfigValidate

      조직 정책에 대한 구성 데이터를 확인합니다.

    • snDevOpsChange

      연결된 스냅샷이 첨부된 변경 요청을 작성합니다.

    snDevOpsConfig

    한 단계로 구성 데이터 변경 내용을 업로드, 확인 및 게시합니다.

    이 작업은 각 작업을 개별적으로 실행할 필요 없이 snDevOpsConfigUpload, snDevOpsConfigGetSnapshots 및 snDevOpsConfigRegisterPipeline 작업을 하나의 작업으로 결합합니다.

    입력 변수
    구성 파일 데이터 모델의 구성요소 또는 배포 가능 경로에 업로드할 구성 데이터 파일을 지정합니다.
    applicationName 구성 데이터를 업로드할 애플리케이션을 지정합니다.
    대상 구성 데이터가 업로드될 데이터 모델 대상(예: 구성요소, 컬렉션, 배포 가능 항목)을 지정합니다.
    collectionName (선택 사항) 업로드할 컬렉션의 이름입니다(대상이 컬렉션인 경우 필수).
    배포 가능 이름 (선택 사항) 업로드할 배포 가능 항목의 이름입니다(대상이 배포 가능한 경우 필수).
    namePath

    구성 데이터가 업로드될 데이터 모델의 이름 경로를 지정합니다.

    주:
    vars 폴더에 업로드할 때 변수 폴더 경로를 지정하려면 "vars/"로 이름 경로를 시작해야 합니다.
    데이터 형식 구성 파일의 데이터 형식(예: JSON,YAML,XML 등)을 지정합니다.
    자동 커밋 업로드 후 구성 데이터를 커밋할지 여부(예/아니오)를 지정합니다. 기본값은 true입니다.
    자동 유효성 확인 커밋 중 구성 데이터를 확인할지 여부(예/아니오)를 지정합니다. 기본값은 true입니다.
    자동 게시 유효성 검사 후 구성 데이터를 게시할지 여부를 지정합니다(예/아니오). 기본값은 true입니다.
    changesetNumber

    (선택 사항) 이 업로드 활동과 연결된 (열린) 변경 세트를 지정합니다. 제공되지 않은 경우 새 변경 세트가 작성됩니다.

    주:
    여러 업로드 시나리오에만 사용됩니다.
    markFailed (선택 사항) 유효성 검사 시도가 실패한 경우(백엔드 문제로 인해) 파이프라인에 실패합니다.
    showResults (선택 사항) 작업 콘솔 로그에 확인 결과를 Jenkins 표시합니다.
    continueWithLatest (선택 사항) 스냅샷이 생성되지 않는 경우(예/아니오) applicatioName-deployableName-changesetNumber 조합에 따라 최신 스냅샷을 반환할지 여부를 지정합니다. 기본값은 false입니다.
    출력
    • 제대로 된 경우, 스냅샷 또는 스냅샷 세트입니다.
    • 실패하면 API/백엔드 실패 메시지가 표시됩니다.
    예제
    • 입력:
      
      snapshotObj = snDevOpsConfig(
           applicationName: "PaymentDemo",
           configFile: "config/application/Collection/Collection2/*.json",
           target: "collection",
           collectionName: "release-1.0",
           namePath: "settings/infrastructure/database",
           dataFormat: "json",
           autoCommit: 'true',
           autoValidate: 'true',
           autoPublish: 'true',
           continueWithLatest: 'true',
           markFailed: 'true',
           showResults: 'false'
      )
      
      echo"*************************\n ${snapshotObj}"
    • 출력 Jenkins snDevOpsConfig 응답 출력
    예 - collection
    주:
    컬렉션에 업로드할 때 collectionName 인수가 필요합니다.
    
    snDevOpsConfig(
         applicationName: 'PaymentDemo',
         target: 'collection',
         collectionName: 'release-1.0',
         namePath: 'web-api-v1.0',
         configFile: 'k8s/helm/*.yml',
         dataFormat: 'yaml',
         autoCommit: 'true',
         autoValidate: 'true',
         autoPublish: 'true'
    )
    예 - 배포 가능
    주:
    배포 가능 항목에 업로드할 때 deployableName 인수가 필요합니다.
    
    snDevOpsConfig(
         applicationName: 'PaymentDemo',
         target: 'deployable',
         deployableName: 'Production',
         namePath: 'web-api-v1.0',
         configFile: 'k8s/helm/*.yml',
         dataFormat: 'yaml',
         autoCommit: 'true',
         autoValidate: 'true',
         autoPublish: 'true'
    )
    하나의 커밋에 여러 업로드

    다른 위치에서 구성 데이터를 업로드하거나 데이터 모델에 대한 단일 커밋으로 추적된 여러 대상(예: 구성요소 하나, 배포 가능 항목 하나)에 데이터 세트를 업로드하려면 첫 번째 업로드 세트에 필요한 만큼 snDevOpsConfigUpload 작업을 호출한 다음 최종 업로드를 위해 snDevOpsConfig 작업을 호출할 수 있습니다.

    예를 들면 다음과 같습니다.

    • 첫 번째 업로드에서 변수(예: $changeset)를 생성하고 후속 업로드에서 다시 사용할 수 있도록 단계의 반환 값을 할당합니다.

      1 - XML 파일을 구성요소에 업로드:
      
      $changeset = snDevOpsConfigUpload(
           applicationName: 'PaymentDemo',
           target: 'component',
           namePath: 'paymentService-v1.0',
           configFile: 'infra/v1/config.xml',
           dataFormat: 'xml',
           autoCommit: 'false',
           autoValidate: 'false',
           autoPublish: 'false'
      )
    • 후속 업로드(및 최종 업로드)에서는 변수를 입력으로 사용합니다.

      2 - JSON 파일을 배포 가능 항목의 vars 폴더에 업로드:
      
      snDevOpsConfig(
           applicationName: 'PaymentDemo',
           target: 'deployable',
           deployableName: 'Production',
           namePath: 'vars/dbSettings',
           configFile: 'infra/prod/dbConfig.json',
           dataFormat: 'json',
           changesetNumber: ”${changeset}”,
           autoCommit: 'false',
           autoValidate: 'false',
           autoPublish: 'false',
           continueWithLatest: 'true'
      )
    여러 데이터 형식 업로드
    구성 데이터를 다른 파일 형식으로 업로드하려면 이러한 사양을 사용하여 snDevOpsConfig 작업을 호출할 수 있습니다.
    • configFile 인수가 경로에서 와일드카드를 사용하는지 확인합니다.
    • dataFormat 인수를 지정하지 마십시오.

    예를 들면 다음과 같습니다.

    • 이러한 구성 파일이 있다고 가정해 보겠습니다.

      DevOps 구성 Jenkins 업로드 파일

    • 다음은 snDevOpsConfig를 사용하여 구성 파일을 업로드하는 방법입니다.
      
      snDevOpsConfig(
           applicationName: 'PaymentDemo',
           target: 'component',
           namePath: 'paymentService-v1.0',
           configFile: 'infra/v1/*',
           autoCommit: 'true',
           autoValidate: 'true',
           autoPublish: 'true'
      )

    snDevOpsConfigUpload

    이 작업은 애플리케이션 데이터 모델 내의 지정된 위치에 구성 파일을 업로드합니다.

    파이프라인이 실행되는 동안 모든 구성 파일이 애플리케이션 데이터 모델에 업로드되는 반복적인 특성으로 사용됩니다.

    지원:
    • 업로드 대상:
      • 구성요소, 컬렉션 또는 배포 가능 항목입니다.
      • 구성요소, 컬렉션 또는 배포 가능 항목의 변수(vars) 폴더입니다.
    • 구성 파일 입력을 위한 정규 표현식 패턴입니다.
    • 동일한 파이프라인에서 여러 번 호출할 수 있습니다.
    입력 변수
    구성 파일 데이터 모델의 구성요소 또는 배포 가능 경로에 업로드할 구성 데이터 파일을 지정합니다.
    applicationName 구성 데이터를 업로드할 애플리케이션을 지정합니다.
    대상 구성 데이터가 업로드될 데이터 모델 대상(예: 구성요소, 컬렉션, 배포 가능 항목)을 지정합니다.
    collectionName (선택 사항) 업로드할 컬렉션의 이름입니다(대상이 컬렉션인 경우 필수).
    배포 가능 이름 업로드할 배포 가능 항목의 이름입니다(대상이 배포 가능한 경우 필수).
    namePath

    구성 데이터가 업로드될 데이터 모델의 이름 경로를 지정합니다.

    주:
    vars 폴더에 업로드할 때 변수 폴더 경로를 지정하려면 "vars/"로 이름 경로를 시작해야 합니다.
    데이터 형식 구성 파일의 데이터 형식(예: JSON,YAML,XML 등)을 지정합니다.
    변환 경로 (선택 사항) 구성 파일의 디렉터리 구조(작업 영역 기준)를 유지하고 디렉터리를 데이터 모델 내의 경로로 변환할지 여부를 지정합니다.
    changesetNumber

    (선택 사항) 이 업로드 활동과 연결된 (열린) 변경 세트를 지정합니다. 제공되지 않은 경우 새 변경 세트가 작성됩니다.

    주:
    여러 업로드 시나리오에만 사용됩니다.
    자동 커밋 업로드 후 구성 데이터를 커밋할지 여부(예/아니오)를 지정합니다. 기본값은 false입니다.
    자동 유효성 확인 커밋 중 구성 데이터를 확인할지 여부(예/아니오)를 지정합니다. 기본값은 false입니다.
    출력 변수
    changesetNumber

    (선택 사항) 이 업로드 활동과 연결된 (열린) 변경 세트를 지정합니다.

    변경 세트 번호가 제공되지 않으면 새 변경 세트가 생성됩니다.

    예제
    • 입력:

      다음은 snDevOpsConfigUpload 작업의 예입니다. 설명을 위해 디버깅 시나리오를 위해 콘솔 로그에 에코될 수 있는 changeSetId 변수에 응답을 할당합니다.

      
      changeSetId = snDevOpsConfigUpload(
           applicationName: "PaymentDemo",
           target: 'component',
           namePath: "web-api-v1.0",
           configFile: "k8s/helm/values.yml",
           dataFormat: "json",
           autoCommit: 'true',
           autoValidate: 'true'
      )
      
      echo "Changeset: $changeSetId created"
    • 출력:

      의 데이터 모델에 DevOps 구성업로드되는 데이터 외에도 출력은 다음과 같이 보일 것입니다(Blue Ocean 플러그인을 사용하여 콘솔 출력 시각화).

      DevOps 구성 구성 출력 업로드

    예 - 다중 업로드(구성요소)
    업로드 작업을 두 번 이상 호출하여 한 변경 세트의 업로드 부분을 유지하면서 다른 위치에서 다른 파일 형식으로 구성 데이터를 업로드할 수 있습니다.
    • 첫 번째 업로드에서 changesetNumber 출력 변수를 후속 업로드에서 다시 사용할 수 있도록 작업 이름을 지정합니다.
      YAML 파일 업로드:
      
      $changeset = snDevOpsConfigUpload(
           applicationName: 'PaymentDemo',
           target: 'component',
           namePath: 'wep-api-v1.0',
           configFile: 'k8s/helm/values.yml',
           dataFormat: 'yaml',
           autoCommit: 'false',
           autoValidate: 'false'
      )
    • 후속 업로드에서는 첫 번째 업로드의 changesetNumber 출력 변수를 입력 변수로 참조합니다.
      JSON 파일 3개 업로드:
      
      snDevOpsConfigUpload(
           applicationName: 'PaymentDemo',
           target: 'component',
           namePath: 'wep-api-v1.0',
           configFile: 'infra/*.json',
           dataFormat: 'json',
           autoCommit: 'false',
           autoValidate: 'false',
           changesetNumber: ”${changeset}”
      )
    • 최종 호출에서 첫 번째 업로드의 changesetNumber 출력 변수를 입력 변수로 참조하는 것 외에도 autoCommit 및 autoValidate를 true로 설정합니다.
      INI 파일 업로드:
      
      snDevOpsConfigUpload(
           applicationName: 'PaymentDemo',
           target: 'component',
           namePath: 'wep-api-v1.0',
           configFile: 'featureToggles/set1.ini',
           dataFormat: 'ini',
           autoCommit: 'true',
           autoValidate: 'true',
           changesetNumber: ”${changeset}”
      )
    예 - 다중 업로드(컬렉션 및 변수)
    업로드 작업을 두 번 이상 호출하여 한 변경 세트의 업로드 부분을 유지하면서 다른 위치에서 다른 파일 형식으로 구성 데이터를 업로드할 수 있습니다.
    • 첫 번째 업로드에서 변수(예: $changeset)를 생성하고 후속 업로드에서 다시 사용할 수 있도록 단계의 반환 값을 할당합니다.
      XML 파일 업로드:
      
      $changeset = snDevOpsConfigUpload(
           applicationName: 'PaymentDemo',
           target: 'collection',
           collectionName: 'release-v1.0',
           namePath: 'v1-common-configs',
           configFile: 'infra/v1/config.xml',
           dataFormat: 'xml',
           autoCommit: 'false',
           autoValidate: 'false'
      )
    • 후속 업로드에서는 변수를 입력으로 사용합니다.
      JSON 파일 업로드:
      
      snDevOpsConfigUpload(
           applicationName: 'PaymentDemo',
           target: 'deployable',
           deployableName: 'Production',
           namePath: 'vars/dbSettings',
           configFile: 'infra/prod/dbConfig.json',
           dataFormat: 'json',
           autoCommit: 'true',
           autoValidate: 'true',
           changesetNumber: ”${changeset}”
      )
    주:
    변수 폴더에 업로드하려면 uploadTarget을 deployable로 설정해야 하며, deployableName 및 changesetNumber에 대해 올바른 값을 설정해야 합니다.

    snDevOpsConfigGetSnapshots

    이 작업은 다음과 같은 다양한 시나리오에서 사용됩니다.

    • 영향을 받는 배포 가능 항목에 대한 모든 스냅샷을 검색합니다.

      구성 파일이 애플리케이션 데이터 모델에 업로드되면 시스템은 업로드의 영향을 받는 것으로 확인된 모든 배포 가능 항목에 대한 스냅샷을 생성합니다. CI 플로우를 따라 마지막 업로드 호출에 유효성 검사가 활성화되어 있다고 가정하면 다음 단계는 스냅 샷 목록을 반복하고 모두 유효성 검사를 통과했는지 확인하는 것입니다.

    • 특정 스냅샷을 검색합니다.

      CD 플로우에 따라 특정 스냅샷이 검색되므로 게시한 다음 익스포트하여 다운스트림에서 사용할 수 있습니다(예: 인프라 또는 애플리케이션 프로비저닝).

    • 업로드에서 스냅샷이 생성되지 않는 경우 애플리케이션의 배포 가능 항목에 대한 최신 스냅샷을 검색합니다.

      구성 변경 사항이 없는 경우, 구성 데이터 집합을 애플리케이션-배포 가능 - 변경 세트 조합에 대한 환경에 배포할 수 있습니다.

    • 파이프라인 실행 시 정책 확인 결과 표시.

      스냅샷을 가져올 때 Jenkins 빌드 테스트 결과 페이지에서 예외를 포함한 정책 확인 결과를 테스트 결과로 봅니다.

    입력 정의
    applicationName 구성 데이터를 업로드하거나 데이터를 내보낼 애플리케이션을 지정합니다.
    배포 가능 이름 (선택 사항) 최신 스냅샷 데이터를 가져올 애플리케이션에 대한 배포 가능 항목을 지정합니다.
    changesetNumber (선택 사항) 사용자가 관심 있는 구성 변경 세트의 변경 세트 ID를 지정합니다.
    확인됨 (선택 사항) 전달된 스냅샷만 반환할지 또는 예외(true/false)로 전달된 스냅샷만 반환할지 여부를 지정합니다. 기본값은 true입니다.
    continueWithLatest (선택 사항) 스냅샷이 생성되지 않는 경우(예/아니오) applicatioName-deployableName-changesetNumber 조합에 따라 최신 스냅샷을 반환할지 여부를 지정합니다. 기본값은 false입니다.
    출력
    • 제대로 된 경우, 스냅샷 또는 스냅샷 세트입니다.
    • 실패하면 API/백엔드 실패 메시지가 표시됩니다.
    예제
    • 특정 스냅샷(지정됨):
      
      $snapshots = snDevOpsConfigGetSnapshots(
           applicationName: 'PaymentDemo',
           deployableName: 'Production',
           changesetNumber: 'Chset-16',
           isValidated: 'true',
           continueWithLatest: 'true'
      )
    • 최신 유효성이 확인된 스냅샷(애플리케이션 및 배포 가능 항목 조합에 대한 최신 스냅샷 반환):
      
      $snapshots = snDevOpsConfigGetSnapshots(
           applicationName: 'PaymentDemo',
           deployableName: 'Production',
           isValidated: 'true'
      )
    • 모든 변경 세트 스냅샷(애플리케이션 및 배포 가능 항목 조합에 대한 모든 스냅샷 반환):
      
      $snapshots = snDevOpsConfigGetSnapshots(
           applicationName: 'PaymentDemo',
           changesetNumber: 'Chset-16'
      )
    • 파이프라인 실행 시 정책 확인 결과 표시.
      1. snDevOpsConfigGetSnapshots 작업 중에 생성된 스냅샷 확인 결과가 포함된 파일의 경로에 변수를 할당합니다.
      2. JUnit 작업을 호출하여 스냅샷 유효성 확인 결과를 파이프라인 실행 테스트 섹션에 로드합니다.
      
      stage('Validate') {
          steps {
      	script {
                 changeSetResults = snDevOpsConfigGetSnapshots( … )
                 if (!changeSetResults) {
                    echo "No snapshots were created"
                 } else {
      	       def changeSetResultsObject = readJSON text: changeSetResults
      
      	       changeSetResultsObject.each {
                        snapshotName = it.name
                        snapshotObject = it
      	       }
      	       // STEP 1
      		validationResultsPath = "${snapshotName}_${currentBuild.projectName}_${currentBuild.number}.xml"
      	    }
      	}
          }
      }
      
      post {
          always {
              // STEP 2
              junit testResults: "${validationResultsPath}", skipPublishingChecks: true
          }
      }
      

    snDevOpsConfigPublish

    이 작업은 지정된 애플리케이션 및 배포 가능 항목에 대한 스냅샷을 게시합니다. 여기에서 내보내기 프로세스를 통해 스냅샷을 사용할 수 있습니다.

    입력 정의
    applicationName 구성 데이터를 게시할 애플리케이션을 지정합니다.
    배포 가능 이름 구성 데이터를 게시할 애플리케이션의 배포 가능 항목을 지정합니다.
    snapshotName 게시할 스냅샷의 이름을 지정합니다.
    출력
    • 성공하면 true입니다.
    • 그렇지 않으면 false입니다.
    예제
    
    snDevOpsConfigPublish(
         applicationName: 'PaymentDemo',
         deployableName: 'Production',
         snapshotName: 'Production-v23.dpl',
    )

    snDevOpsConfigExport

    이 작업은 지정된 애플리케이션 및 배포 가능 항목에 대한 스냅샷을 익스포트합니다.

    사용자는 익스포트, 관련 익스포트 인수, 익스포트 형식(예: YAML, JSON 등) 및 익스포트된 구성 데이터의 출력 위치를 지정해야 합니다.

    여기에서 구성 데이터를 파이프라인의 배포 또는 프로비저닝 도구 다운스트림에 대한 입력으로 직접 사용할 수 있습니다.

    입력 인수
    applicationName 데이터를 익스포트할 애플리케이션을 지정합니다.
    배포 가능 이름 데이터를 익스포트할 애플리케이션에 대한 배포 가능 구성을 지정합니다.
    snapshotName

    (선택 사항) 데이터를 익스포트할 스냅샷을 지정합니다.

    스냅샷을 지정하지 않으면 배포 가능 항목의 최신 스냅샷이 사용됩니다.

    익스포터 이름 스냅샷에 적용할 익스포터(예: UniqueCDI)를 지정합니다.
    익스포터Args (선택 사항) 익스포터와 함께 사용할 인수를 지정합니다.
    익스포트 포맷 스냅샷 데이터를 익스포트할 형식을 지정합니다(예: INI, YAML,PROPS).
    fileName

    데이터를 익스포트할 파일을 지정합니다(작업 공간에 있는 것으로 가정).

    파일 이름을 지정하지 않으면 애플리케이션 이름과 배포 가능 항목 이름(파일 확장명 포함)의 연결이 기본적으로 사용됩니다.

    출력
    • 성공하면 true입니다.
    • 그렇지 않으면 false입니다.
    예제
    
    snDevOpsConfigExport(
         applicationName: 'PaymentDemo',
         deployableName: 'Production',
         snapshotName: 'Production-v23.dpl',
         exporterFormat: 'yaml',
         exporterName: 'returnAllData-now',
         exporterArgs: '',
         fileName: 'exported_file-Production-20220302.yml'
    )

    snDevOpsConfigRegisterPipeline

    이 작업은 파이프라인 실행 중에 추적할 수 있도록 변경 세트 및/또는 스냅샷을 파이프라인에 연결합니다. 에서 DevOps 변경 속도이는 파이프라인 UI에 표시됩니다.

    변경 가속 기능에 대한 DevOps 자세한 내용은 을 참조하십시오변경 프로세스 가속화 DevOps.

    입력 인수
    applicationName 애플리케이션의 이름을 지정합니다.
    changesetNumber

    (선택 사항) 파이프라인 실행과 연결할 변경 세트를 지정합니다.

    주:
    changesetNumber 또는 snapshotName을 지정하되 둘 다 지정할 수는 없습니다.
    snapshotName

    (선택 사항) 파이프라인 실행에 연결할 스냅샷의 이름을 지정합니다.

    주:
    changesetNumber 또는 snapshotName을 지정하되 둘 다 지정할 수는 없습니다.
    출력
    • 성공하면 true입니다.
    • 그렇지 않으면 false입니다.
    예제
    • 입력:

      다음은 snDevOpsConfigRegisterPipeline 작업의 예입니다. 설명을 위해 changeSetRegResult 변수에 응답을 할당하여 디버깅 시나리오를 위해 콘솔 로그에 에코할 수 있습니다.

      
      changeSetRegResult = snDevOpsConfigRegisterPipeline(
           applicationName: "PaymentDemo",
           changesetNumber: "Chset-122"
      )
      
      echo "Pipeline registration result: ${changeSetRegResult}"
    • 출력:

      의 데이터 모델에 DevOps 구성업로드되는 데이터 외에도 출력은 다음과 같이 보일 것입니다(Blue Ocean 플러그인을 사용하여 콘솔 출력 시각화).

      DevOps 구성 등록 파이프라인 출력

    snDevOpsConfigValidate

    조직 정책에 대한 구성 데이터를 확인합니다.

    입력 인수
    applicationName 확인할 애플리케이션입니다.
    배포 가능 이름 애플리케이션에서 유효성을 검사할 수 있도록 배포 가능 항목입니다.
    snapshotName (선택 사항) 유효성을 검사할 스냅샷의 이름입니다.
    markFailed (선택 사항) 유효성 검사 시도가 실패한 경우(백엔드 문제로 인해) 파이프라인에 실패합니다.
    showResults (선택 사항) 작업 콘솔 로그에 확인 결과를 Jenkins 표시합니다.
    출력
    • 성공하면 출력이 없습니다.
    • 실패하면 API/백엔드 실패 메시지가 표시됩니다.
    예제
    • 특정 스냅샷(지정됨):
      
      snDevOpsConfigValidate(
           applicationName: 'PaymentDemo',
           deployableName: 'Production',
           snapshotName: 'Production-v23.dpl',
      )
    • 최신 스냅샷(애플리케이션 및 배포 가능 항목 조합에 대한 최신 스냅샷을 검색하고 확인):
      
      $changeset = snDevOpsConfigValidate(
           applicationName: 'PaymentDemo',
           deployableName: 'Production'
      )

    snDevOpsChange

    변경 요청을 생성하고 참조용으로 스냅샷을 첨부합니다.

    변경 가속 기능에 대한 DevOps 자세한 내용은 을 참조하십시오변경 프로세스 가속화 DevOps.

    입력 인수
    applicationName 애플리케이션의 이름을 지정합니다.
    snapshotName 변경 요청과 연결할 스냅숏의 이름을 지정합니다.
    예제
    
    snDevOpsChange(
         applicationName: 'PaymentDemo',
         snapshotName: 'Production-v23.dpl'
    )

    Jenkins 파이프라인 예시

    
    pipeline {
        environment {
            buildArtifactsPath = "build_artifacts/${currentBuild.number}"
            validationResultsPath = ""
        }
    
        agent any
    
        stages {
            // Initialize pipeline
            stage('Initialize') {
                steps {
                    script {
                        // DevOps Config application related information
                        appName = 'PaymentDemo'
                        deployableName = 'Production'
                        componentName = "web-api-v1.0"
                        collectionName = "release-1.0"
                        // Configuration file information
                        exportFormat = 'yaml'
                        configFilePath = "k8s/helm/values.yml"
                        // Exporter related information
                        exporterName = 'returnAllData-nowPreview' 
                        exporterArgs = ''
                        // Jenkins variables declared to be used in pipeline
                        exportFileName = "${buildArtifactsPath}/export_file-${appName}-${deployableName}-${currentBuild.number}.${exportFormat}"
                        changeSetId = ""
                        snapshotName = ""
                        snapshotObject = ""
                        isSnapshotValidateionRequired = false
                        isSnapshotPublisingRequired = false
                    }
                }
            }
                
            // Validate configuration data changes
            stage('Validate') {
                parallel {
                    stage('Config') {
                        stages('Config Steps') {
                            // Upload configuration data to DevOps Config
                            stage('Upload, Validate, & Publish') {
                                steps {
                                    sh "echo uploading and auto-validating configuration file: ${configFilePath}"
                                    script {
                                        changeSetResults = snDevOpsConfig(
                                            applicationName: "${appName}",
                                            target: 'component',
                                            namePath: "${componentName}",
                                            configFile: "${configFilePath}",
                                            dataFormat: "${configFileFormat}",
                                            autoCommit: 'true',
                                            autoValidate: 'true',
                                            autoPublish: 'true',
                                            isValidated: 'true',
                                            continueWithLatest: 'true',
                                            markFailed: 'true'
                                        )
    
                                        echo "Snapshots generated, validated, and published: ${changeSetResults}"
    
                                        def changeSetResultsObject = readJSON text: changeSetResults
    
                                        changeSetResultsObject.each {
                                            snapshotName = it.name
                                            snapshotObject = it
                                        }
    
                                        validationResultsPath = "${snapshotName}_${currentBuild.projectName}_${currentBuild.number}*.xml"
                                    }
                                }
                            }
                            // Export published snapshot to be used by downstream deployment tools
                            stage('Export') {
                                steps {
                                    script {
                                        // create build artifacts dir to store export file
                                        sh "mkdir -p ${buildArtifactsPath}"
                                        
                                        exportResponse = snDevOpsConfigExport(
                                            applicationName: "${appName}",
                                            snapshotName: "${snapshotObject.name}",
                                            deployableName: "${deployableName}",
                                            exporterFormat: "${exportFormat}",
                                            fileName: "${exportFileName}",
                                            exporterName: "${exporterName}",
                                            exporterArgs: "${exporterArgs}"
                                        )
                                    }
                                }
                            }
                        }
                    }
                }
            }
            
            // Create change request and attach snapshot for reference
            stage('Change Management') {
                steps {
                    script {
                        // Trigger change request
                        snDevOpsChange(
                            applicationName: "${appName}",
                            snapshotName: "${snapshotName}"
                        )
                    }     
                }
            }
        }
        // NOTE: attach snapshot validation results to run (if the snapshot fails validation)
        post {
            always {
                // attach policy validation results
                junit testResults: "${validationResultsPath}", skipPublishingChecks: true
            }
        }
    }