Azure DevOps 파이프라인 작업
파이프라인에서 Azure DevOps 이러한 작업을 사용하여 데이터 모델과 상호작용합니다.DevOps 구성
이러한 작업은 목표를 달성하기 위한 특정 파이프라인 정의를 생성하기 위해 제공됩니다.
- ServiceNow-DevOps-config-agent-upload-config
에이전트 작업을 통해 데이터 모델의 배포 가능 항목에 구성 데이터를 업로드합니다.
- ServiceNow-DevOps-Config-Agent-Get-Snapshot
애플리케이션의 스냅샷을 가져옵니다.
- ServiceNow-DevOps-Config-Agent-Get-Snapshot-Name
스냅샷의 이름을 추출합니다.
- ServiceNow-DevOps-Config-Agent-Publish-Snapshot
구성 데이터의 스냅샷을 게시합니다.
- ServiceNow-DevOps-config-agent-export-snapshot
구성 데이터의 하위 세트를 익스포트합니다.
- ServiceNow-DevOps-Config-Agent-Register-Pipeline
파이프라인 실행에 변경 세트 및/또는 스냅샷을 등록합니다.
- ServiceNow-DevOps-Config-Agent-Validate-Snapshot
조직 정책에 대한 구성 데이터의 유효성을 확인합니다.
- ServiceNow-DevOps-Server-Change-Acceleration
파이프라인의 일부로 변경 요청을 생성합니다.
ServiceNow-DevOps-config-agent-upload-config
애플리케이션 데이터 모델 내의 지정된 위치에 구성 파일을 업로드하는 작업입니다.
- 입력 변수
connectedServiceName 파이프라인 엔드포인트 연결을 지정합니다 DevOps . applicationName 구성 데이터가 업로드될 애플리케이션을 지정합니다. deployableName 애플리케이션의 배포 가능 항목을 지정합니다(대상이 배포 가능한 경우 필수). uploadTarget 구성 데이터가 업로드되는 데이터 모델 대상(예: 구성요소, 컬렉션, 배포 가능)을 지정합니다. collectionName (선택 사항) 구성 데이터를 업로드할 컬렉션을 지정합니다(대상이 컬렉션인 경우 필수). namePath 구성 데이터가 업로드되는 데이터 모델 경로를 지정합니다.
주:vars 폴더에 업로드할 때 변수 폴더 경로를 지정하려면 이름 경로를 "vars/"로 시작해야 합니다.configFile경로 구성 데이터가 데이터 모델의 구성요소 또는 배포 가능 경로에 업로드되는 소스 폴더를 지정합니다.
비어 있음은 리포지토리의 루트입니다. 파일이 리포지토리에 없는 경우 변수를 사용합니다(예: $(agent.builddirectory)).
변환 경로 (선택 사항) 작업 공간과 관련하여 구성 파일의 디렉터리 구조를 유지하고, 디렉터리를 데이터 모델 내의 경로로 변환할지 여부를 지정합니다. 기본값은 false입니다. 데이터 형식 config_file의 데이터 형식(예: JSON,YAML, XML 등)을 지정합니다. changesetNumber (선택 사항) 이 업로드 활동이 연결되는 (미결) 변경 세트를 지정합니다. 제공되지 않은 경우 새 변경 세트가 생성됩니다.
주:여러 업로드 시나리오에만 사용됩니다.자동 커밋 업로드 후 구성 데이터를 커밋할지 여부를 지정합니다(예/아니오). 기본값은 false입니다. 자동 확인 커밋 중에 구성 데이터의 유효성을 검사할지 여부를 지정합니다(예/아니오). 기본값은 true입니다. - 출력 변수
changesetNumber 업로드 중에 생성/커밋된 변경 세트 기록입니다.
나중에 파이프라인에서 사용할 수 있도록 작업에 이름을 입력합니다(예: componentUpload).
- 예 - 업로드 구성
-task: ServiceNow-DevOps-Config-Agent-Upload-Config name: componentUpload inputs: connectedServiceName: 'MyServiceNowInstance' applicationName: 'PaymentDemo' uploadTarget: 'component' namePath: 'wep-api-v1.0' configFilePath: 'k8s/helm/values.yml' dataFormat: 'yaml' autoCommit: true autoValidate: true- 예 - 다중 업로드(구성요소)
- 업로드 작업을 두 번 이상 호출하여 업로드를 하나의 변경 세트의 일부로 유지하면서 다른 위치에서 다른 파일 형식으로 구성 데이터를 업로드할 수 있습니다.
- 첫 번째 업로드에서 changesetNumber 출력 변수를 후속 업로드에서 다시 사용할 수 있도록 작업의 이름을 지정합니다.YAML 파일 업로드:
-task: ServiceNow-DevOps-Config-Agent-Upload-Config name: componentUpload inputs: connectedServiceName: 'MyServiceNowInstance' applicationName: 'PaymentDemo' uploadTarget: 'component' namePath: 'wep-api-v1.0' configFilePath: 'k8s/helm/values.yml' dataFormat: 'yaml' autoCommit: false autoValidate: false - 후속 업로드에서 첫 번째 업로드의 changesetNumber 출력 변수를 입력 변수로 참조합니다.JSON 파일 업로드:
-task: ServiceNow-DevOps-Config-Agent-Upload-Config inputs: connectedServiceName: 'MyServiceNowInstance' applicationName: 'PaymentDemo' uploadTarget: 'component' namePath: 'wep-api-v1.0' configFilePath: 'featureToggles/set1.json' dataFormat: 'json' autoCommit: true autoValidate: true changesetNumber: '$(componentUpload.changesetNumber)'
- 첫 번째 업로드에서 changesetNumber 출력 변수를 후속 업로드에서 다시 사용할 수 있도록 작업의 이름을 지정합니다.
- 예 - 다중 업로드(컬렉션 및 변수)
- 업로드 작업을 두 번 이상 호출하여 업로드를 하나의 변경 세트의 일부로 유지하면서 다른 위치에서 다른 파일 형식으로 구성 데이터를 업로드할 수 있습니다.
- 첫 번째 업로드에서 changesetNumber 출력 변수를 후속 업로드에서 다시 사용할 수 있도록 작업의 이름을 지정해야 합니다.XML 파일 업로드:
-task: ServiceNow-DevOps-Config-Agent-Upload-Config name: componentUpload inputs: connectedServiceName: 'MyServiceNowInstance' applicationName: 'PaymentDemo' uploadTarget: 'collection' collectionName: 'release-1.0' namePath: 'v1-common-configs' configFilePath: 'infra/v1/config.xml' dataFormat: 'xml' autoCommit: false autoValidate: false - 후속 업로드에서 첫 번째 업로드의 changesetNumber 출력 변수를 입력으로 참조합니다.JSON 파일 업로드:
-task: ServiceNow-DevOps-Config-Agent-Upload-Config inputs: connectedServiceName: 'MyServiceNowInstance' applicationName: 'PaymentDemo' uploadTarget: 'deployable' deployableName: 'Production-EMEA' namePath: 'vars/dbSettings' configFilePath: 'infra/prodc/dbSettings.json' dataFormat: 'json' autoCommit: true autoValidate: true changesetNumber: '$(componentUpload.changesetNumber)'
주:변수 폴더에 업로드하려면 uploadTarget을 배포 가능으로 설정하고 deployableName 및 changesetNumber에 대해 올바른 값을 설정해야 합니다. - 첫 번째 업로드에서 changesetNumber 출력 변수를 후속 업로드에서 다시 사용할 수 있도록 작업의 이름을 지정해야 합니다.
ServiceNow-DevOps-Config-Agent-Get-Snapshot
- 특정 스냅샷을 검색합니다.
CD 플로우에 따라 특정 스냅샷이 검색되므로 게시한 다음 다운스트림에서 사용할 수 있도록 익스포트할 수 있습니다(예: 인프라 또는 애플리케이션 프로비저닝).
- 확인된 최신 스냅샷을 검색합니다.
지정된 애플리케이션-배포 가능 조합에 대해 확인된 최신 스냅샷이 검색됩니다.
- 영향을 받는 배포 가능 항목에 대한 모든 스냅샷을 검색합니다.
구성 파일이 애플리케이션 데이터 모델에 업로드되면 시스템은 업로드의 영향을 받는 것으로 확인된 모든 배포 가능 항목에 대한 스냅샷을 생성합니다. CI 플로우를 따라가면서 마지막 업로드 호출에서 확인이 활성화되었다고 가정하면 다음 단계는 스냅샷 목록을 반복하여 모두 확인을 통과했는지 확인하는 것입니다.
- 업로드에서 스냅샷이 생성되지 않는 경우 애플리케이션의 배포 가능 항목에 대한 최신 스냅샷을 검색합니다.
구성 변경이 수행되지 않은 경우 애플리케이션-배포 가능 항목-변경 세트 조합에 대한 환경에 배포할 수 있습니다.
- 파이프라인 실행 시 정책 확인 결과를 표시합니다.
스냅샷을 가져올 때 ADO 빌드 테스트 결과 페이지에서 정책 유효성 검사 결과를 테스트 결과로 볼 수 있습니다(예외 포함).
- 입력 변수
connectedServiceName 파이프라인 엔드포인트 연결을 지정합니다 DevOps (프로젝트의 서비스 연결 설정에 정의됨). applicationName 구성 데이터를 업로드하거나 데이터를 익스포트할 애플리케이션을 지정합니다. deployableName (선택 사항) 최신 스냅샷 데이터를 가져올 배포 가능 항목(지정된 애플리케이션당)을 지정합니다. changesetNumber (선택 사항) 해당하는 구성 변경 세트의 변경 세트 ID를 지정합니다. isValidated됨 (선택 사항) 전달된 스냅샷만 반환할지 아니면 예외(예/아니오)와 함께 전달되는지 여부를 지정합니다. 기본값은 true입니다. 최신 상태로 계속 (선택 사항) 스냅샷이 생성되지 않는 경우 applicationName-deployableName-changesetNumber 조합에 따라 최신 스냅샷을 반환할지 여부를 지정합니다(예/아니오). 기본값은 false입니다. - 출력 변수
snapshotObject 요청된 스냅샷을 포함하는 JSON 객체입니다.
나중에 파이프라인에서 사용할 수 있도록 작업에 이름을 입력합니다(예: getSnapshot).
- 예 - 특정 스냅샷
-task: ServiceNow-DevOps-Config-Agent-Get-Snapshot name: getSnapshot inputs: connectedServiceName: 'MyServiceNowInstance' applicationName: 'PaymentDemo' deployableName: 'Production' changesetNumber: 'Chset-16' isValidated: true continueWithLatest: true- 예 - 확인된 최신 스냅샷(지정된 애플리케이션-배포 가능 조합의 경우)
-task: ServiceNow-DevOps-Config-Agent-Get-Snapshot name: getSnapshot inputs: connectedServiceName: 'MyServiceNowInstance' applicationName: 'PaymentDemo' deployableName: 'Production' isValidated: true- 예 - 모든 변경 세트 스냅샷
-task: ServiceNow-DevOps-Config-Agent-Get-Snapshot name: getSnapshot inputs: connectedServiceName: 'MyServiceNowInstance' applicationName: 'PaymentDemo' changesetNumber: 'Chset-16'- 예 - 정책 확인 결과 표시
ServiceNow-DevOps-Config-Agent-Get-Snapshot 작업 중에 생성된 스냅샷 확인 결과가 포함된 파일의 경로에 변수를 할당합니다.
파이프라인 실행에서 스냅샷 확인 결과를 로드하려면 변수를 입력으로 사용하여 ADO 네이티브 테스트 결과 v2 게시 작업을 활용해야 합니다.
stages: - stage: Two jobs: - job: A variables: - name: validationResultsPath value: 1/TEST_DATA_$(Build.DefinitionName)_$(Build.BuildNumber)_*.xml steps: - task: PublishTestResults@2 inputs: testResultsFormat: 'JUnit' testResultsFiles: '$(validationResultsPath)' searchFolder: '$(System.WorkFolder)'
ServiceNow-DevOps-Config-Agent-Get-Snapshot-Name
이 작업은 특정 스냅샷에서 스냅샷 이름을 가져오기 위한 ServiceNow-DevOps-Config-Agent-Get-Snapshot-Name 작업의 후속 조치로 사용됩니다. 여기에서 스냅샷 이름을 스냅샷 게시와 같은 다운스트림 작업에 대한 입력으로 사용할 수 있습니다.
- 입력 변수
deployableName ServiceNow-DevOps-Config-Agent-Get-Snapshot 작업에서 반환된 스냅샷 객체를 가져올 배포 가능 항목을 지정합니다. 스크립트 스냅샷 개체에서 스냅샷 이름을 추출할 스크립트를 지정합니다. - 출력 변수
snapshotName 배치 가능 항목의 스냅샷 이름입니다.
나중에 파이프라인에서 사용할 수 있도록 작업에 이름을 입력합니다(예: getSnapshotName).
- 예 - 스냅샷 이름 가져오기
이 스크립트를 사용하여 ServiceNow-DevOps-Config-Agent-Get-Snapshot 작업에서 검색된 스냅샷 이름을 추출합니다.
-task: ServiceNow-DevOps-Config-Agent-Get-Snapshot-Name inputs: deployableName: 'PRD' script: | function run() { let name; let deployableName = process.argv[2]; let jsonObj = $(getSnapshot.snapshotObjects); let size = jsonObj.result.length; for(let i=0; i<size; i++) { obj = jsonObj.result[i]; if(obj[“deployable_id.name”].toLowerCase() == deployableName) { name = obj.name; console.log(name); } } } run();- 예 - 스냅샷 가져오기와 함께 사용되는 스냅샷 이름 가져오기
ServiceNow-DevOps-Config-Agent-Get-Snapshot 작업 바로 다음에 ServiceNow-DevOps-Config-Agent-Get-Snapshot-Name 작업을 호출하여 스냅샷 이름을 반환합니다.
스냅샷 가져오기(영향을 받는 스냅샷을 포함하는 JSON 객체 반환):-stage: Two jobs: -job: B steps: -task: ServiceNow-DevOps-Config-Agent-Get-Snapshot name: getSnapshot inputs: connectedServiceName: 'MyServiceNowInstance' applicationName: 'PaymentDemo' deployableName: 'Production-2' changesetNumber: 'Chset-16'스냅샷 이름 가져오기(특정 배포 가능 항목의 스냅샷 이름 반환):-stage: Two jobs: - job: B steps: - task: ServiceNow-DevOps-Config-Agent-Get-Snapshot name: getSnapshotName inputs: deployableName: 'Production-2' script:| function run() { let name; let deployableName = process.argv[2]; let jsonObj = $(getSnapshot.snapshotObjects); let size = jsonObj.result.length; for(let i=0; i<size ;i++) { obj = jsonObj.result[i]; if(obj["deployable_id.name"].toLowerCase() == deployableName) { name = obj.name; console.log(name); // This standard output of inline script is given as the task output } } } run();파이프라인에서 반환된 스냅샷 이름을 사용합니다(예: 게시):-stage: Three jobs: -job: C variables: varSnapshotName: $[stageDependencies.Two.B.outputs['getSnapshotName.snapshotName']] steps: -task: ServiceNow-DevOps-Config-Agent-Publish-Snapshot inputs: connectedServiceName: 'MyServiceNowInstance' applicationName: 'PaymentDemo' deployableName: 'Production-2' snapshotName: '$(varSnapshotName)'
ServiceNow-DevOps-Config-Agent-Publish-Snapshot
이 작업은 지정된 애플리케이션 및 배포 가능 항목에 대한 스냅샷을 게시합니다. 여기에서 익스포트 프로세스를 통해 스냅샷을 사용할 수 있습니다.
- 입력 변수
connectedServiceName 엔드포인트 연결을 지정합니다 ServiceNow . applicationName 게시할 애플리케이션을 지정합니다. deployableName 구성 데이터를 게시할 애플리케이션의 배포 가능 항목을 지정합니다. snapshotName 게시할 스냅샷의 이름을 지정합니다. - 출력 변수
- 해당 사항 없음(성공하면 예를 반환하고, 그렇지 않으면 아니오를 반환).
- 예제
-task: ServiceNow-DevOps-Config-Agent-Publish-Snapshot inputs: connectedServiceName: 'MyServiceNowInstance' applicationName: 'PaymentDemo' deployableName: 'Production-2' snapshotName: 'Production-v23.dpl'
ServiceNow-DevOps-config-agent-export-snapshot
이 작업은 지정된 애플리케이션 및 배포 가능 항목에 대한 스냅샷을 익스포트합니다. 익스포트된 구성 데이터의 익스포터, 관련 익스포터 인수, 익스포트 형식(예: YAML, JSON 등) 및 출력 위치를 지정합니다. 여기에서 구성 데이터를 파이프라인의 배포 또는 프로비저닝 도구 다운스트림에 대한 입력으로 직접 사용할 수 있습니다.
- 입력 변수
connectedServiceName 엔드포인트 연결을 지정합니다 ServiceNow . applicationName 게시할 애플리케이션을 지정합니다. deployableName 구성 데이터를 익스포트할 애플리케이션의 배포 가능 항목을 지정합니다. snapshotName 구성 데이터를 익스포트할 스냅샷의 이름을 지정합니다. exporterName 스냅샷에 적용할 익스포터( 예: UniqueCDI)를 지정합니다. args (선택 사항) 익스포터와 함께 사용할 인수를 지정합니다. exportFormat 스냅샷 데이터를 익스포트할 형식(예: INI, YAML, PROPS)을 지정합니다. saveFile 파일이 Azure 리포지토리에 저장되는지 확인합니다(예/아니오). 기본값은 false입니다.
주:스크립트에 대한 적절한 권한/OAuth 토큰 액세스가 필요합니다.그렇지 않으면 익스포트 파일이 파이프라인 작업 공간 디렉터리에 생성됩니다.
- 출력 변수
- 해당 사항 없음(성공하면 예를 반환하고, 그렇지 않으면 아니오를 반환).
- 예제
-task: ServiceNow-DevOps-Config-Agent-Export-Snapshot inputs: connectedServiceName: 'MyServiceNowInstance' applicationName: 'PaymentDemo' deployableName: 'Production-2' exporterName: 'returnAllData-nowPreview' dataFormat: 'yaml' args: '' snapshotName: 'Production-v23.dpl' saveFile: true fileName: 'ExporterOutput/ExportData_$(build.definitionName)_$(build.buildNumber).yaml'
ServiceNow-DevOps-Config-Agent-Register-Pipeline
이 작업은 파이프라인 실행 중에 추적할 수 있도록 변경 세트와 스냅샷을 파이프라인에 연결합니다. 에서 DevOps 변경 속도이는 파이프라인 UI에 표시됩니다.
- 입력 변수
connectedServiceName 파이프라인 엔드포인트 연결을 지정합니다 DevOps . applicationName 애플리케이션 이름을 지정합니다. changesetNumber (선택 사항) 파이프라인 실행에 연결할 변경 세트의 ID를 지정합니다. snapshotName (선택 사항) 파이프라인 실행에 연결할 스냅샷의 이름을 지정합니다. - 출력 변수
- 해당 사항 없음(성공하면 예를 반환하고, 그렇지 않으면 아니오를 반환).
- 예제
-task: ServiceNow-DevOps-Config-Agent-Publish-Snapshot inputs: connectedServiceName: 'MyServiceNowInstance' changesetNumber: 'Changeset-143'
ServiceNow-DevOps-Config-Agent-Validate-Snapshot
- 입력 변수
connectedServiceName 엔드포인트 연결을 지정합니다 ServiceNow . applicationName 확인할 애플리케이션을 지정합니다. deployableName 확인할 배포 가능 항목(지정된 애플리케이션당)을 지정합니다. snapshotName (선택 사항) 확인할 스냅샷의 이름을 지정합니다. 결과 표시 (선택 사항) 콘솔 로그에 확인 결과를 표시하도록 지정합니다. - 출력 변수
- 해당 사항 없음(성공하면 예를 반환하고, 그렇지 않으면 아니오를 반환).
- 예제
-task: ServiceNow-DevOps-Config-Agent-Validate-Snapshot inputs: connectedServiceName: 'MyServiceNowInstance' applicationName: 'PaymentDemo' deployableName: 'Production-2' snapshotName: '' showResults: false
ServiceNow-DevOps-Server-Change-Acceleration
이 작업은 에이전트가 없는(서버) 작업에서 파이프라인의 Azure DevOps 일부로 변경 요청을 ServiceNow 변경 관리 자동으로 생성하는 데 필요합니다.
DevOps 구성에서 동일한 변경 세트의 여러 스냅샷을 변경 요청에 연결하려면 스냅샷 이름과 애플리케이션 이름을 사용하여 지정된 애플리케이션 서비스에 대한 특정 구성 데이터를 추적합니다.
변경 가속화 기능에 대한 DevOps 자세한 내용은 문서를 참조하십시오변경 프로세스 가속화 DevOps.
- 입력 변수(관련: DevOps 구성)
connectedServiceName 파이프라인 엔드포인트 연결을 지정합니다 DevOps . applicationName 변경 요청에 첨부되는 스냅샷과 관련된 애플리케이션입니다. snapshotName 변경 요청에 첨부할 스냅샷의 이름입니다. - 예제
-stage: ChangeRequest jobs: -job: 'changerequestjob' pool: server steps: -task: ServiceNow-DevOps-Server-Change-Acceleration inputs: connectedServiceName: 'MyServiceNowInstance' applicationName: 'PaymentDemo' snapshotName: 'Production-v23.dpl'
YAML 파이프라인 예
trigger:
branches:
include:
- none
stages:
- stage: One
displayName: Upload Configuration Data
pool:
vmImage: ubuntu-latest
jobs:
- job: A
displayName: Upload
steps:
- task: ServiceNow-DevOps-Config-Agent-Upload-Config@1
name: componentUpload
inputs:
connectedServiceName: 'MyServiceNowInstance'
applicationName: 'PaymentDemo'
uploadTarget: 'component'
configFile: 'k8s/helm/values.yml'
namePath: 'processor-api-v1.0'
dataFormat: 'yaml'
autoValidate: true
autoCommit: true
convertPath: true
- stage: Two
displayName: Get Latest Snapshot
pool:
vmImage: ubuntu-latest
jobs:
- job: B
displayName: Get Snapshot
variables:
- name: varChangesetNumber
value: $[stageDependencies.One.A.outputs['componentUpload.changesetNumber'] ]
- name: varConfigValidationResults
value: 1/TEST_DATA_$(Build.DefinitionName)_$(Build.BuildNumber)_*.xml
steps:
- task: ServiceNow-DevOps-Config-Agent-Get-Snapshot@1
name: getSnapshot
inputs:
connectedServiceName: 'MyServiceNowInstance'
applicationName: 'PaymentDemo'
deployableName: 'Production-EMEA'
changeSetNumber: '$(varChangesetNumber)'
continueWithLatest: true
- task: ServiceNow-DevOps-Config-Agent-Get-Snapshot-Name@1
name: getSnapshotName
inputs:
deployableName: 'Production-EMEA'
script: "function run() {\n let name;\n let deployableName = process.argv[2]; \n let jsonObj = $(getSnapshot.snapshotObjects);\n let size = jsonObj.result.length;\n for(let i=0; i<size ;i++) {\n obj = jsonObj.result[i];\n if(obj[\"deployable_id.name\"].toLowerCase() == deployableName) {\n name = obj.name;\n console.log(name); // This standard output of inline script is given as the task output\n }\n }\n}\nrun();\n"
- task: PublishTestResults@2
inputs:
testResultsFormat: ‘JUnit’
testResultsFiles: ‘$(varConfigValidationResults)’
searchFolder: ‘$(System.WorkFolder)’
- task: ServiceNow-DevOps-Config-Agent-Register-Pipeline@1
inputs:
connectedServiceName: 'MyServiceNowInstance'
snapshotName: '$(getSnapshotName.snapshotName)'
applicationName: 'PaymentDemo'
- stage: Three
displayName: Publish Snapshot
pool:
vmImage: ubuntu-latest
jobs:
- job: C
displayName: Publish
variables:
- name: varSnapshotName
value: $[stageDependencies.Two.B.outputs['getSnapshotName.snapshotName']]
steps:
- task: ServiceNow-DevOps-Config-Agent-Publish-Snapshot@1
inputs:
connectedServiceName: 'MyServiceNowInstance'
applicationName: 'PaymentDemo'
deployableName: 'Production-EMEA'
snapshotName: '$(varSnapshotName)'
- stage: ChangeRequest
dependsOn:
- Two
- Three
jobs:
- job: 'changerequestjob'
timeoutInMinutes: 2
pool:
name: server
variables:
- name: varSnapshotName
value: $[stageDependencies.Two.B.outputs['getSnapshotName.snapshotName']]
steps:
- task: ServiceNow-DevOps-Server-Change-Acceleration@1
inputs:
connectedServiceName: 'MyServiceNowInstance'
applicationName: 'PaymentDemo'
snapshotName: '$(varSnapshotName)'
- stage: Four
displayName: Export Snapshot
dependsOn:
- Two
- Three
- ChangeRequest
pool:
vmImage: ubuntu-latest
variables:
- name: varSnapshotName
value: $[stageDependencies.Two.B.outputs['getSnapshotName.snapshotName']]
jobs:
- job: D
displayName: Export
steps:
- task: ServiceNow-DevOps-Config-Agent-Export-Snapshot@1
inputs:
connectedServiceName: 'MyServiceNowInstance'
applicationName: 'PaymentDemo'
deployableName: 'Production-EMEA'
exporterName: 'returnAllData-now'
dataFormat: 'yaml'
snapshotName: '$(varSnapshotName)'
saveFile: true
fileName: 'ExportData_$(build.definitionName)_$(build.buildNumber).yaml'
- task: CmdLine@2
inputs:
script: |
echo Write your commands here
echo Hello world
tree $(Pipeline.Workspace)