GitHub Pipeline-Aktionen
Verwenden Sie diese Aktionen in Ihrer Pipeline GitHub, um mit dem Datenmodell DevOps Config zu interagieren.
GitHub geskriptete und deklarative Pipelines werden unterstützt.
Die Aktionen ServiceNow DevOps Config Validate (servicenow-devops-config-validate) und DevOps Config Export (servicenow-devops-config-export) GitHub werden bereitgestellt, um eine bestimmte Pipeline-Definition zu erstellen.
DevOps-Konfiguration validieren (servicenow-devops-config-validate)
Konfigurationsdaten in einer ServiceNow -Instanz hochladen und validieren
- Eingabeargumente
Argument Beschreibung Instanz-URL ServiceNow Instanz-URL. devops-integration-username DevOps Config Anwendername für die Integration devops-integration-user-password DevOps Config Passwort des Integrationsbenutzers. Anwendungsname DevOps Config Anwendungsname. Ziel Datenmodellziel, in das Konfigurationsdateien hochgeladen werden. Beispiele für Datenmodellziele sind:KomponenteSammlungbereitstellbar
Name des bereitstellbaren Elements Name des bereitstellbaren Elements im Datenmodell DevOps Config. Sammlungsname (Optional) Sammlungsname im Datenmodell. Erforderlich, wenn das Ziel eine Sammlung ist. Namenspfad (Optional) Namenspfad des Knotens im Datenmodell, in den die Konfigurationsdateien hochgeladen werden. Konfigurationsdateipfad Dateipfad beim Hochladen einer einzelnen Datei oder Dateipfadmuster basierend auf dem Ant-Stilmuster beim Hochladen mehrerer Dateien in das Datenmodell. Informationen zu Ant-Stilmustern finden Sie unter Verzeichnisbasierte Aufgaben in der Dokumentation Apache Ant.1.10.14 Manuelle Dokumentation. Datenformat Datenformat der Konfigurationsdateien. Beispiele für Datenformate sind:CSVINIJSONEigenschaftenRAWXMLYAML
Datenformat-Attribut (Optional) Attribute für erweiterte Datenformate zum Analysieren von Konfigurationsdaten. automatisch festlegen Boolesche Eingabe (wahr oder falsch) zum Committen von Konfigurationsdaten nach dem erfolgreichen Upload. Standardwert:
trueautomatische Validierung Boolesche Eingabe (wahr oder falsch) zur Validierung von Konfigurationsdaten nach einem erfolgreichen Commit. Standardwert:
trueautomatisch veröffentlichen Boolesche Eingabe (wahr oder falsch) zur Veröffentlichung von Konfigurationsdaten nach erfolgreicher Validierung. Standardwert:
trueChangeset (Optional) Öffnen Sie das Changeset, das der Upload-Aktion zugeordnet ist. Wenn nicht angegeben, wird ein neues Changeset erstellt. Snapshot-Validierung – Zeitüberschreitung (Optional) Maximale Zeit in Minuten für den Abschluss der Validierung, bevor die Aktion fehlschlägt. Standardwert:
60„terminate-on-policy-validation-failure“ (Optional) Boolesche Eingabe (wahr oder falsch) zum Beenden des GitHub -Workflows nach Fehlern bei der Richtlinienvalidierung. Standardwert:
false- Ausgaben
- Nummer des Changesets
Changeset-Nummer, die der Upload-Aktion zugeordnet ist.
- Snapshot-Name
Name des neuesten Snapshots des bereitstellbaren Elements.
- validation-status
Validierungsstatus des Snapshots. Beispiel: „
passed“, „passed_with_exception“, „failed“, „execution_error“, „not_validated“.- validation-results
Die Validierungsergebnisse im JSON-Format für den Snapshot.
- Beispiel: Konfigurationsdateien werden in ein bereitstellbares Element hochgeladen
upload_and_validate_job: name: Upload and validate needs: <upstream job> runs-on: ubuntu-latest steps: - name: ServiceNow Devops Config Validate uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta with: instance-url: ${{ secrets.SN_INSTANCE_URL }} devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }} devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }} application-name: PaymentDemo target: deployable deployable-name: Production name-path: web-api-v1.0 auto-commit: true auto-validate: true auto-publish: true config-file-path: data/k8s/helm/*.yml data-format: yaml snapshot-validation-timeout: 60 terminate-on-policy-validation-failures: true- Beispiel: Konfigurationsdateien werden in eine Sammlung hochgeladen
upload_and_validate_job: name: Upload and validate needs: <upstream job> runs-on: ubuntu-latest steps: - name: ServiceNow Devops Config Validate uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta with: instance-url: ${{ secrets.SN_INSTANCE_URL }} devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }} devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }} application-name: PaymentDemo target: collection deployable-name: Production collection-name: release-1.0 name-path: web-api-v1.0 auto-commit: true auto-validate: true auto-publish: true config-file-path: data/k8s/helm/*.yml data-format: yaml snapshot-validation-timeout: 60 terminate-on-policy-validation-failures: true- Beispiel: Konfigurationsdateien werden in eine Komponente hochgeladen
upload_and_validate_job: name: Upload and validate needs: <upstream job> runs-on: ubuntu-latest steps: - name: ServiceNow Devops Config Validate uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta with: instance-url: ${{ secrets.SN_INSTANCE_URL }} devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }} devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }} application-name: PaymentDemo target: component deployable-name: Production name-path: web-api-v1.0 auto-commit: true auto-validate: true auto-publish: true config-file-path: data/k8s/helm/*.yml data-format: yaml snapshot-validation-timeout: 60 terminate-on-policy-validation-failures: true- Beispiel: Mehrere Konfigurationsdateien werden in einem einzigen Commit hochgeladen
upload_and_validate_job: name: Upload and validate needs: <upstream job> runs-on: ubuntu-latest # Upload an XML file to a component steps: - name: ServiceNow Devops Config Validate id: upload_and_validate_xml uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta with: instance-url: ${{ secrets.SN_INSTANCE_URL }} devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }} devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }} application-name: PaymentDemo target: component deployable-name: Production name-path: web-api-v1.0 auto-commit: false auto-validate: true auto-publish: true config-file-path: data/infra/v1/*.xml data-format: xml snapshot-validation-timeout: 60 terminate-on-policy-validation-failures: true # Upload a JSON file to the vars folder of a deployable steps: - name: ServiceNow Devops Config Validate id: upload_and_validate_json uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta with: instance-url: ${{ secrets.SN_INSTANCE_URL }} devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }} devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }} application-name: PaymentDemo target: component deployable-name: Production name-path: web-api-v1.0 auto-commit: true auto-validate: true auto-publish: true config-file-path: data/infra/prod/*.json data-format: json snapshot-validation-timeout: 60 terminate-on-policy-validation-failures: true changeset : ${{ steps.upload_and_validate_xml.outputs.changeset-number }}
DevOps-Konfigurationsexport (servicenow-devops-config-export)
Exportieren Sie Konfigurationsdaten mit ServiceNow DevOps Config.
- Eingabeargumente
Argument Beschreibung Instanz-URL ServiceNow Instanz-URL. devops-integration-username DevOps Config Anwendername für die Integration devops-integration-user-password DevOps Config Passwort des Integrationsbenutzers. Anwendungsname DevOps Config Anwendungsname. Name des bereitstellbaren Elements Name des bereitstellbaren Elements im Datenmodell DevOps Config. Exporter-Name Name des Exporters, der Konfigurationsdaten aus dem Datenmodell DevOps Config exportiert. Snapshot-Name (Optional) Snapshot, aus dem Daten exportiert werden sollen. Wenn kein Snapshot angegeben ist, wird der neueste Snapshot für das bereitstellbare Element verwendet. Datenexporteur-Format (Optional) Format zum Exportieren der Snapshot-Daten. Beispiele für Datenformate sind:CSVINIJSONEigenschaftenRAWXMLYAML
exporter-arguments (Optional) Argumente, die zusammen mit dem Exporter verwendet werden sollen. Der Wert muss ein JSON-Objekt sein, das als Zeichenfolge dargestellt wird. - Ausgabe
- exporter-content
Konfigurationsdaten, die der Exporter exportiert.
- Beispiel: Exportspezifischer Snapshot
export: name: Export config needs: <upstream job> runs-on: ubuntu-latest steps: - name: ServiceNow DevOps Config Export uses: ServiceNow/servicenow-devops-config-export@v1.0.0-beta with: instance-url: ${{ secrets.SN_INSTANCE_URL }} devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }} devops-integration-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }} application-name: PaymentDemo deployable-name: Production exporter-name: returnDataforNodeName-now snapshot-name: Production-v1.dpl exporter-arguments: '{ "nodeName": "node1" }'- Beispiel: Exportiert den neuesten bereitgestellten Snapshot mit zusätzlichen Parametern
export: name: Export config needs: <upstream job> runs-on: ubuntu-latest steps: - name: ServiceNow DevOps Config Export uses: ServiceNow/servicenow-devops-config-export@v1.0.0-beta with: instance-url: ${{ secrets.SN_INSTANCE_URL }} devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }} devops-integration-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }} application-name: PaymentDemo deployable-name: Production exporter-name: returnDataforNodeName-now exporter-arguments: '{ "nodeName": "node1" }' exporter-data-format: XML