Azure DevOps Pipeline-Aufgaben
Verwenden Sie diese Aufgaben in Ihrem Azure DevOps Pipeline, die mit interagiert werden soll DevOps Config Datenmodell.
Diese Aufgaben werden bereitgestellt, um eine bestimmte Pipeline-Definition zu erstellen, um Ihr Ziel zu erreichen.
- ServiceNow-DevOps-Config-Agent-Upload-Config
Laden Sie Konfigurationsdaten über den Agent-Auftrag in 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 für eine 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 innerhalb eines Anwendungsdatenmodells.
- Eingabevariablen
ConnectedServiceName Gibt an DevOps Pipeline-Endpunktverbindung. applicationName Gibt die Anwendung an, in die Konfigurationsdaten hochgeladen werden. Bereitstellbarer Name Gibt das bereitstellbare Element für die Anwendung an (erforderlich, wenn das Ziel bereitstellbar ist). UploadTarget Gibt das Datenmodellziel an, in das Konfigurationsdaten hochgeladen werden (z. B. Komponente , Sammlung , Bereitstellbar ). collectionName (Optional) gibt die Sammlung an, in die Konfigurationsdaten hochgeladen werden (erforderlich, wenn das Ziel „Sammlung“ ist). namePath Gibt den Datenmodellpfad an, zu dem 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. Variablen verwenden, wenn sich Dateien nicht im Repository befinden (z. B. $(Agent.buildDirectory) ).
ConvertPath (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“. Datenformat Gibt das Datenformat der config_file an (z. B. JSON , YAML , XML , Usw.). 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 mehrere Upload-Szenarien verwendet.Automatisches Commit Gibt an, ob Konfigurationsdaten nach dem Upload (wahr/falsch) festgeschrieben werden sollen. Die Standardeinstellung ist „false“. Automatisch validieren Gibt an, ob Konfigurationsdaten während des Commits validiert werden sollen (wahr/falsch). Der Standardwert ist „wahr“. - Ausgabevariable
changesetNumber Changeset-Datensatz, der während des Uploads erstellt/bestätigt wurde.
Geben Sie der Aufgabe einen Namen an, damit sie später in der Pipeline verwendet werden kann (Beispiel: KomponentenUpload ).
- Beispiel – Konfiguration hochladen
-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 Standorten hochzuladen, während die Uploads weiterhin Teil eines Changesets bleiben.
- Benennen Sie beim ersten Upload die Aufgabe, damit die Ausgabevariable changesetNumber in nachfolgenden Uploads wiederverwendet werden kann.YAML-Datei hochladen:
-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 bei nachfolgenden Uploads auf die Ausgabevariable changesetNumber aus dem ersten Upload als Eingabevariable.JSON-Datei hochladen:
-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 beim ersten Upload die Aufgabe, damit die Ausgabevariable changesetNumber in nachfolgenden Uploads wiederverwendet werden kann.
- Beispiel – mehrere Uploads (Sammlung und vars)
- Sie können die Upload-Aufgabe mehrmals aufrufen, um Konfigurationsdaten in verschiedenen Dateiformaten von verschiedenen Standorten hochzuladen, während die Uploads weiterhin 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-Datei hochladen:
-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 bei nachfolgenden Uploads als Eingabe auf die Ausgabevariable changesetNumber aus dem ersten Upload.JSON-Datei hochladen:
-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 festgelegt sein Bereitstellbar , Und die richtigen Werte müssen für „deployment ableName“ und „changesetNumber“ festgelegt werden. - 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 exportiert werden kann, um ihn nachgelagert zu verwenden (z. B. um Infrastruktur oder Anwendung bereitzustellen).
- Ruft den neuesten validierten Snapshot ab.
Der neueste validierte Snapshot wird für die angegebene Kombination aus anwendungsbereitstellbarem Element abgerufen.
- Ruft 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 beim letzten Upload-Aufruf die Validierung aktiviert war, wird im nächsten Schritt die Liste der Snapshots iteriert und sichergestellt, 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 verfügbar, um in einer Umgebung für eine Kombination aus „Application-bereitstellbaren-Changeset“ bereitzustellen, wenn keine Konfigurationsänderungen vorgenommen werden.
- Zeigen Sie die Ergebnisse der Richtlinienvalidierung in einer Pipeline-Ausführung an.
Zeigen Sie die Ergebnisse der Richtlinienvalidierung als Testergebnisse auf der Seite mit den Ergebnissen der ADO-Build-Tests an, einschließlich „konform mit Ausnahme“, wenn Sie einen Snapshot abrufen.
- Eingabevariablen
ConnectedServiceName Gibt an DevOps Pipeline-Endpunktverbindung (definiert in den Service-Verbindungseinstellungen des Projekts). applicationName Gibt die Anwendung an, in die Konfigurationsdaten hochgeladen oder Daten exportiert werden sollen. Bereitstellbarer Name (Optional) gibt das bereitstellbare Element (gemäß der angegebenen 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. Ist validiert (Optional) gibt an, ob nur Snapshots zurückgegeben werden sollen, die übergeben wurden, oder ob sie mit Ausnahme (wahr/falsch) übergeben wurden. Der Standardwert ist „wahr“. ContinueWithLatest (Optional) gibt an, ob der neueste Snapshot gemäß zurückgegeben werden soll ApplicationName – Bereitstellbarer Name – ChangesetNumber Kombination, 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 der Aufgabe einen Namen an, damit sie später in der Pipeline verwendet werden kann (Beispiel: GetSnapshot ).
- Beispiel: Spezifischer 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 anwendungsbereitstellbarem Element)
-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 eine Variable zu, die die während der generierten Snapshot-Validierungsergebnisse enthält ServiceNow-DevOps-Config-Agent-get-Snapshot Aufgabe.
Um die Snapshot-Validierungsergebnisse in Ihre Pipeline-Ausführung zu laden, müssen Sie native ADO-Elemente nutzen V2-Aufgabe „Testergebnisse veröffentlichen“ , Verwendet die Variable als Eingabe.
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 von verwendet ServiceNow-DevOps-Config-Agent-get-Snapshot-Name Aufgabe zum Abrufen des Snapshot-Namens aus einem bestimmten Snapshot. Von hier aus kann der Snapshot-Name als Eingabe für eine nachfolgende Aufgabe verwendet werden, z. B. die Veröffentlichung des Snapshots.
- Eingabevariablen
Bereitstellbarer Name Gibt das bereitstellbare Element an, um das Snapshot-Objekt abzurufen, das von zurückgegeben wurde ServiceNow-DevOps-Config-Agent-get-Snapshot Aufgabe. 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 der Aufgabe einen Namen an, damit sie später in der Pipeline verwendet werden kann (Beispiel: GetSnapshotName ).
- Beispiel – Snapshot-Namen abrufen
Verwenden Sie dieses Skript, um den Snapshot-Namen zu extrahieren, der aus abgerufen wurde ServiceNow-DevOps-Config-Agent-get-Snapshot Aufgabe.
-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 – Snapshot-Name abrufen, der mit Snapshot abrufen verwendet wird
Rufen Sie an ServiceNow-DevOps-Config-Agent-get-Snapshot-Name Aufgabe direkt nach ServiceNow-DevOps-Config-Agent-get-Snapshot Aufgabe zum Rückgeben des Snapshot-Namens.
Snapshots abrufen (gibt ein JSON-Objekt mit betroffenen Snapshots zurück):-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 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();Zurückgegebenen Snapshot-Namen in der Pipeline verwenden (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 über den Exportprozess verbraucht werden.
- Eingabevariablen
ConnectedServiceName Gibt an ServiceNow Endpunktverbindung. applicationName Gibt die zu veröffentlichende Anwendung an. Bereitstellbarer Name Gibt das bereitstellbare Element für die Anwendung an, um Konfigurationsdaten zu veröffentlichen. snapshotName Gibt den Namen des zu veröffentlichenden Snapshots an. - Ausgabevariable
- Nicht zutreffend (gibt „wahr“ zurück, wenn erfolgreich, 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 usw.) und den Ausgabeort für die exportierten Konfigurationsdaten an. Von hier aus können die Konfigurationsdaten direkt als Eingabe für ein nachgelagertes Bereitstellungs- oder Bereitstellungstool in der Pipeline verwendet werden.
- Eingabevariablen
ConnectedServiceName Gibt an ServiceNow Endpunktverbindung. applicationName Gibt die Anwendung an, aus der veröffentlicht werden soll. Bereitstellbarer Name 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 zum Exportieren der Snapshot-Daten an (z. B. INI , YAML , EIGENSCHAFTEN ). SaveFile Überprüft, ob die Datei in einem Azure-Repository gespeichert werden soll (wahr/falsch). Die Standardeinstellung ist „false“.
Hinweis:Entsprechende Berechtigung/OAuth-Tokenzugriff auf das Skript ist erforderlich.Andernfalls wird die Exportdatei im Pipeline-Arbeitsbereichsverzeichnis erstellt.
- Ausgabevariable
- Nicht zutreffend (gibt „wahr“ zurück, wenn erfolgreich, 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 verknüpft ein Changeset und einen Snapshot mit der Pipeline, sodass sie während der Pipeline-Ausführung nachverfolgt werden können. In DevOps Change-Geschwindigkeit, Wird in der Pipeline-UI angezeigt.
- Eingabevariablen
ConnectedServiceName Gibt an DevOps Pipeline-Endpunktverbindung. 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 „wahr“ zurück, wenn erfolgreich, andernfalls „falsch“).
- Beispiel
-task: ServiceNow-DevOps-Config-Agent-Publish-Snapshot inputs: connectedServiceName: 'MyServiceNowInstance' changesetNumber: 'Changeset-143'
ServiceNow-DevOps-Config-Agent-Validate-Snapshot
- Eingabevariablen
ConnectedServiceName Gibt an ServiceNow Endpunktverbindung. applicationName Gibt die zu validierende Anwendung an. Bereitstellbarer Name Gibt das bereitstellbare Element (gemäß der angegebenen Anwendung) an, das validiert werden soll. snapshotName (Optional) gibt den Namen des zu validierenden Snapshots an. ShowResults (Optional) gibt an, ob Validierungsergebnisse im Konsolenprotokoll angezeigt werden sollen. - Ausgabevariable
- Nicht zutreffend (gibt „wahr“ zurück, wenn erfolgreich, 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 agentenlose (Server-)Aufträge erforderlich, um automatisch eine Change-Anforderung in zu erstellen ServiceNow Change-Management Als Teil von Azure DevOps Pipeline.
In DevOps Config, Um mehrere Snapshots desselben Changesets einer Change-Anforderung zuzuordnen, verwenden Sie Snapshot-Name und Anwendungsname, um bestimmte Konfigurationsdaten für einen bestimmten Anwendungsservice nachzuverfolgen.
Siehe Beschleunigen Sie Ihre DevOps Change-Prozess Weitere Informationen zu finden DevOps Change Acceleration-Funktion.
- Eingabevariablen (bezogen auf DevOps Config)
ConnectedServiceName Gibt an DevOps Pipeline-Endpunktverbindung. 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 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)