Azure DevOps Pipeline-Aufgaben
Verwenden Sie diese Aufgaben in Ihrer Pipeline Azure DevOps, um mit dem Datenmodell DevOps Config ] zu interagieren.
Diese Aufgaben werden bereitgestellt, um eine bestimmte Pipelinedefinition zu erstellen, mit der Sie Ihr Ziel erreichen.
- ServiceNow-DevOps-Config-Agent-Upload-Config
Laden Sie Konfigurationsdaten über den Agent-Auftrag auf ein bereitstellbares Element im Datenmodell hoch.
- ServiceNow-DevOps-Config-Agent-Get-Snapshot
Ruft die Snapshots für eine Anwendung ab.
- ServiceNow-DevOps-Config-Agent-Get-Snapshot-Name
Extrahieren Sie den Namen eines Snapshots.
- ServiceNow-DevOps-Config-Agent-Publish-Snapshot
Veröffentlichen Sie einen Snapshot Ihrer Konfigurationsdaten.
- ServiceNow-DevOps-Config-Agent-Export-Snapshot
Exportieren Sie eine Teilmenge Ihrer Konfigurationsdaten.
- ServiceNow-DevOps-Config-Agent-Register-Pipeline
Registrieren Sie ein Changeset und/oder einen Snapshot bei einer Pipeline-Ausführung.
- ServiceNow-DevOps-Config-Agent-Validate-Snapshot
Validiert Konfigurationsdaten anhand von Organisationsrichtlinien.
- ServiceNow-DevOps-Server-Change-Acceleration
Erstellen Sie eine Change-Anforderung als Teil der Pipeline.
ServiceNow-DevOps-Config-Agent-Upload-Config
Aufgabe zum Hochladen einer Konfigurationsdatei an einen bestimmten Speicherort in einem Anwendungsdatenmodell.
- Eingabevariablen
verbundenServiceName Gibt die Endpunktverbindung der Pipeline DevOps an. applicationName Gibt die Anwendung an, in die Konfigurationsdaten hochgeladen werden. bereitstellbarerName Gibt das bereitstellbare Element für die Anwendung an (erforderlich, wenn das Ziel bereitstellbar ist). UploadZiel Gibt das Datenmodellziel an, in das Konfigurationsdaten hochgeladen werden (z. B. Komponente, Sammlung, bereitstellbares Element). collectionName (Optional) Gibt die Sammlung an, in die Konfigurationsdaten hochgeladen werden (erforderlich, wenn das Ziel eine Sammlung ist). namePath Gibt den Datenmodell-Pfad an, in den Konfigurationsdaten hochgeladen werden.
Hinweis:Beim Hochladen in einen vars-Ordner müssen Sie den Namenspfad mit „vars/“ beginnen, um den Variablenordnerpfad anzugeben.configFilePath Gibt den Quellordner an, aus dem Konfigurationsdaten in die Komponente oder den bereitstellbaren Pfad im Datenmodell hochgeladen werden.
„Leer“ ist der Stamm des Repositorys. Verwenden Sie Variablen, wenn sich Dateien nicht im Repository befinden (z. B. $(agent.builddirectory)).
konvertierenPfad (Optional) Gibt an, ob die Verzeichnisstruktur der Konfigurationsdateien (in Bezug auf den Arbeitsbereich) beibehalten und das Verzeichnis in Pfade innerhalb des Datenmodells konvertiert werden soll. Die Standardeinstellung ist „false“. dataFormat Gibt das Datenformat der config_file an (z. B. JSON, YAML, XMLusw.). changesetNumber (Optional) Gibt das (offene) Changeset an, dem diese Upload-Aktivität zugeordnet ist. Wenn nicht angegeben, wird ein neues Changeset erstellt.
Hinweis:Wird nur für Szenarien mit mehreren Uploads verwendet.automatisch festlegen Gibt an, ob Konfigurationsdaten nach dem Hochladen committet werden sollen (wahr/falsch). Die Standardeinstellung ist „false“. autoValidate Gibt an, ob Konfigurationsdaten während des Commits validiert werden sollen (wahr/falsch). Der Standardwert ist „true“. - Ausgabevariable
changesetNumber Changeset-Datensatz, der während des Uploads erstellt/committet wurde.
Geben Sie einen Namen für die Aufgabe an, damit sie später in der Pipeline verwendet werden kann (z. B. „ componentUpload“ ).
- Beispiel: Upload-Konfiguration
-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- Beispiel – Mehrere Uploads (Komponente)
- Sie können die Upload-Aufgabe mehrmals aufrufen, um Konfigurationsdaten in verschiedenen Dateiformaten von verschiedenen Speicherorten hochzuladen, während die Uploads Teil eines Changesets bleiben.
- Benennen Sie die Aufgabe beim ersten Upload, damit die Ausgabevariable changesetNumber in nachfolgenden Uploads wiederverwendet werden kann.Upload der YAML-Datei:
-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 - Verweisen Sie in nachfolgenden Uploads auf die Ausgabevariable changesetNumber des ersten Uploads als Eingabevariable.Upload der JSON-Datei:
-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)'
- Benennen Sie die Aufgabe beim ersten Upload, damit die Ausgabevariable changesetNumber in nachfolgenden Uploads wiederverwendet werden kann.
- Beispiel – Mehrere Uploads (Sammlung und Variablen)
- Sie können die Upload-Aufgabe mehrmals aufrufen, um Konfigurationsdaten in verschiedenen Dateiformaten von verschiedenen Speicherorten hochzuladen, während die Uploads Teil eines Changesets bleiben.
- Achten Sie beim ersten Upload darauf, die Aufgabe zu benennen, damit die Ausgabevariable changesetNumber in nachfolgenden Uploads wiederverwendet werden kann.XML-Dateiupload:
-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 - Verweisen Sie in nachfolgenden Uploads auf die Ausgabevariable changesetNumber aus dem ersten Upload als Eingabe.Upload der JSON-Datei:
-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)'
Hinweis:Zum Hochladen in einen Variablenordner muss „uploadTarget“ auf „ deployable“ festgelegt werden, und für „deployableName“ und „changesetNumber“ müssen die richtigen Werte festgelegt sein. - Achten Sie beim ersten Upload darauf, die Aufgabe zu benennen, damit die Ausgabevariable changesetNumber in nachfolgenden Uploads wiederverwendet werden kann.
ServiceNow-DevOps-Config-Agent-Get-Snapshot
- Ruft einen bestimmten Snapshot ab.
Nach dem CD-Flow wird ein bestimmter Snapshot abgerufen, damit er veröffentlicht und dann zur Verwendung nachgelagert exportiert werden kann (z. B. um eine Infrastruktur oder Anwendung bereitzustellen).
- Rufen Sie den neuesten validierten Snapshot ab.
Der neueste validierte Snapshot wird für die angegebene Kombination aus Anwendung und bereitstellbarem Element abgerufen.
- Rufen Sie alle Snapshots für alle betroffenen bereitstellbaren Elemente ab.
Wenn Konfigurationsdateien in ein Anwendungsdatenmodell hochgeladen werden, erstellt das System Snapshots für alle bereitstellbaren Elemente, die vom Upload betroffen sind. Wenn Sie dem CI-Flow folgen und davon ausgehen, dass für den letzten Upload-Aufruf die Validierung aktiviert war, besteht der nächste Schritt darin, die Liste der Snapshots zu durchlaufen und sicherzustellen, dass alle die Validierung bestanden haben.
- Rufen Sie die neuesten Snapshots für ein bereitstellbares Element einer Anwendung ab, falls ein Upload keine Snapshots generiert.
Ein Satz von Konfigurationsdaten ist für die Bereitstellung in einer Umgebung für eine Kombination aus Anwendung, bereitstellbarem Element und Changeset verfügbar, wenn keine Konfigurationsänderungen vorgenommen werden.
- Zeigen Sie die Ergebnisse der Richtlinienvalidierung in einer Pipelineausführung an.
Zeigen Sie die Ergebnisse der Richtlinienvalidierung als Testergebnisse auf der Seite mit den ADO-Build-Testergebnissen an, einschließlich konform mit Ausnahme, wenn Sie einen Snapshot abrufen.
- Eingabevariablen
verbundenServiceName Gibt die Endpunktverbindung der Pipeline DevOps an (definiert in den Serviceverbindungseinstellungen des Projekts). applicationName Gibt die Anwendung an, in die Konfigurationsdaten hochgeladen oder aus der Daten exportiert werden sollen. bereitstellbarerName (Optional) Gibt das bereitstellbare Element (für die angegebene Anwendung) an, für das die neuesten Snapshot-Daten abgerufen werden sollen. changesetNumber (Optional) Gibt die Changeset-ID für den entsprechenden Satz von Konfigurationsänderungen an. istValidiert (Optional) Gibt an, ob nur Snapshots zurückgegeben werden sollen, die übergeben wurden, oder nur Snapshots, die mit Ausnahme übergeben wurden (wahr/falsch). Der Standardwert ist „true“. ContinueWithLatest (Optional) Gibt an, ob der neueste Snapshot gemäß der Kombination „ applicationName“,„deployableName“ – ChangesetNumber“ zurückgegebenwerden soll, wenn keine Snapshots generiert werden (wahr/falsch). Die Standardeinstellung ist „false“. - Ausgabevariable
Snapshot-Objekt Ein JSON-Objekt, das die angeforderten Snapshots enthält.
Geben Sie einen Namen für die Aufgabe an, damit sie später in der Pipeline verwendet werden kann (z. B. getSnapshot).
- Beispiel: Bestimmter Snapshot
-task: ServiceNow-DevOps-Config-Agent-Get-Snapshot name: getSnapshot inputs: connectedServiceName: 'MyServiceNowInstance' applicationName: 'PaymentDemo' deployableName: 'Production' changesetNumber: 'Chset-16' isValidated: true continueWithLatest: true- Beispiel – Neueste validierte Snapshots (für eine bestimmte Kombination aus bereitstellbarer Anwendung und Anwendung)
-task: ServiceNow-DevOps-Config-Agent-Get-Snapshot name: getSnapshot inputs: connectedServiceName: 'MyServiceNowInstance' applicationName: 'PaymentDemo' deployableName: 'Production' isValidated: true- Beispiel: Alle Changeset-Snapshots
-task: ServiceNow-DevOps-Config-Agent-Get-Snapshot name: getSnapshot inputs: connectedServiceName: 'MyServiceNowInstance' applicationName: 'PaymentDemo' changesetNumber: 'Chset-16'- Beispiel: Ergebnisse der Richtlinienvalidierung anzeigen
Weisen Sie dem Pfad der Datei, die die Snapshot-Validierungsergebnisse enthält, die während der Aufgabe ServiceNow-DevOps-Config-Agent-Get-Snapshot generiert wurden, eine Variable zu.
Um die Ergebnisse der Snapshot-Validierung in Ihre Pipeline-Ausführung zu laden, müssen Sie die native ADO -Aufgabe Publish Test Results v2(Testergebnisse veröffentlichen) nutzen und die Variable als Eingabe verwenden.
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
Diese Aufgabe wird als Folgeaufgabe zur Aufgabe ServiceNow-DevOps-Config-Agent-Get-Snapshot-Name verwendet, um den Snapshot-Namen aus einem bestimmten Snapshot abzurufen. Von hier aus kann der Snapshot-Name als Eingabe für eine nachgelagerte Aufgabe verwendet werden, z. B. das Veröffentlichen des Snapshots.
- Eingabevariablen
bereitstellbarerName Gibt das bereitstellbare Element zum Abrufen des Snapshot-Objekts an, das von der Aufgabe ServiceNow-DevOps-Config-Agent-Get-Snapshot zurückgegeben wurde. Skript Gibt das Skript zum Extrahieren des Snapshot-Namens aus dem Snapshot-Objekt an. - Ausgabevariable
snapshotName Der Snapshot-Name für das bereitstellbare Element.
Geben Sie einen Namen für die Aufgabe an, damit sie später in der Pipeline verwendet werden kann (z. B. getSnapshotName).
- Beispiel: Snapshot-Namen abrufen
Verwenden Sie dieses Skript, um den Snapshot-Namen zu extrahieren, der aus der Aufgabe „ServiceNow-DevOps-Config-Agent-Get-Snapshot“ abgerufen wurde.
-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();- Beispiel: Der mit „Snapshot abrufen“ verwendete Snapshot-Name wird abgerufen
Rufen Sie die Aufgabe ServiceNow-DevOps-Config-Agent-Get-Snapshot-Name direkt nach der Aufgabe ServiceNow-DevOps-Config-Agent-Get-Snapshot auf, um den Snapshot-Namen zurückzugeben.
Snapshots abrufen (gibt ein JSON-Objekt zurück, das die betroffenen Snapshots enthält):-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'Snapshot-Namen abrufen (gibt den Snapshot-Namen für ein bestimmtes bereitstellbares Element zurück):-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();Verwenden Sie den zurückgegebenen Snapshot-Namen in der Pipeline (z. B. veröffentlichen):-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
Diese Aufgabe veröffentlicht einen Snapshot für die angegebene Anwendung und das bereitstellbare Element. Von hier aus kann der Snapshot durch den Exportprozess verwendet werden.
- Eingabevariablen
verbundenServiceName Gibt die Endpunktverbindung ServiceNow an. applicationName Gibt die zu veröffentlichende Anwendung an. bereitstellbarerName Gibt das bereitstellbare Element für die Anwendung zur Veröffentlichung von Konfigurationsdaten an. snapshotName Gibt den Namen des zu veröffentlichenden Snapshots an. - Ausgabevariable
- Nicht zutreffend (gibt bei Erfolg „wahr“ zurück, andernfalls „falsch“).
- Beispiel
-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
Diese Aufgabe exportiert einen Snapshot für die angegebene Anwendung und das bereitstellbare Element. Geben Sie den Exporter, relevante Exporter-Argumente, das Exportformat (z. B. YAML, JSON) und den Ausgabespeicherort für die exportierten Konfigurationsdaten an. Von hier aus können die Konfigurationsdaten direkt als Eingabe für ein nachfolgendes Bereitstellungs- oder Bereitstellungstool in der Pipeline verwendet werden.
- Eingabevariablen
verbundenServiceName Gibt die Endpunktverbindung ServiceNow an. applicationName Gibt die Anwendung an, aus der veröffentlicht werden soll. bereitstellbarerName Gibt das bereitstellbare Element für die Anwendung an, aus der Konfigurationsdaten exportiert werden sollen. snapshotName Gibt den Namen des Snapshots an, aus dem Konfigurationsdaten exportiert werden sollen. exporterName Gibt den Exporter an, der auf den Snapshot angewendet werden soll (z. B. UniqueCDIs). args (Optional) Gibt Argumente an, die zusammen mit dem Exporter verwendet werden sollen. exportFormat Gibt das Format für den Export der Snapshot-Daten an (z. B. INI, YAML, PROPS). speichernDatei Prüft, ob die Datei in einem Azure-Repository gespeichert werden soll (wahr/falsch). Die Standardeinstellung ist „false“.
Hinweis:Entsprechende Berechtigung/entsprechender OAuth-Token-Zugriff auf das Skript ist erforderlich.Andernfalls wird die Exportdatei im Pipeline-Arbeitsbereichsverzeichnis erstellt.
- Ausgabevariable
- Nicht zutreffend (gibt bei Erfolg „wahr“ zurück, andernfalls „falsch“).
- Beispiel
-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
Diese Aufgabe bindet ein Changeset und einen Snapshot an die Pipeline, sodass sie während der Pipeline-Ausführung nachverfolgt werden können. In DevOps Change-Geschwindigkeitwird dies in der Pipeline-UI angezeigt.
- Eingabevariablen
verbundenServiceName Gibt die Endpunktverbindung der Pipeline DevOps an. applicationName Gibt den Anwendungsnamen an. changesetNumber (Optional) Gibt die ID des Changesets an, das der Pipeline-Ausführung zugeordnet werden soll. snapshotName (Optional) Gibt den Namen des Snapshots an, der der Pipeline-Ausführung zugeordnet werden soll. - Ausgabevariable
- Nicht zutreffend (gibt bei Erfolg „wahr“ zurück, andernfalls „falsch“).
- Beispiel
-task: ServiceNow-DevOps-Config-Agent-Publish-Snapshot inputs: connectedServiceName: 'MyServiceNowInstance' changesetNumber: 'Changeset-143'
ServiceNow-DevOps-Config-Agent-Validate-Snapshot
- Eingabevariablen
verbundenServiceName Gibt die Endpunktverbindung ServiceNow an. applicationName Gibt die zu validierende Anwendung an. bereitstellbarerName Gibt das zu validierende bereitstellbare Element (für die angegebene Anwendung) an. snapshotName (Optional) Gibt den Namen des zu validierenden Snapshots an. showResults (Optional) Gibt an, dass Validierungsergebnisse im Konsolenprotokoll angezeigt werden. - Ausgabevariable
- Nicht zutreffend (gibt bei Erfolg „wahr“ zurück, andernfalls „falsch“).
- Beispiel
-task: ServiceNow-DevOps-Config-Agent-Validate-Snapshot inputs: connectedServiceName: 'MyServiceNowInstance' applicationName: 'PaymentDemo' deployableName: 'Production-2' snapshotName: '' showResults: false
ServiceNow-DevOps-Server-Change-Acceleration
Diese Aufgabe ist für agentlose (Server-) Aufträge erforderlich, um automatisch eine Change-Anforderung in ServiceNow Change-Management als Teil der Pipeline Azure DevOps ] zu erstellen.
In DevOps Configverwenden Sie zum Zuordnen mehrerer Snapshots desselben Changesets zu einer Change-Anforderung den Snapshot-Namen und den Anwendungsnamen, um bestimmte Konfigurationsdaten für einen bestimmten Anwendungsservice nachzuverfolgen.
Unter Ihren DevOps Change-Prozess beschleunigen finden Sie weitere Informationen zur Funktion DevOps Change-Beschleunigung.
- Eingabevariablen (in Bezug auf DevOps Config)
verbundenServiceName Gibt die Endpunktverbindung der Pipeline DevOps an. applicationName Anwendung, die dem Snapshot zugeordnet ist, der an die Change-Anforderung angehängt wird. snapshotName Name des Snapshots, der an die Change-Anforderung angehängt werden soll. - Beispiel
-stage: ChangeRequest jobs: -job: 'changerequestjob' pool: server steps: -task: ServiceNow-DevOps-Server-Change-Acceleration inputs: connectedServiceName: 'MyServiceNowInstance' applicationName: 'PaymentDemo' snapshotName: 'Production-v23.dpl'
Beispiel für eine YAML-Pipeline
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)