GitHub Pipeline-Aktionen
Verwenden Sie diese Aktionen in GitHub Pipeline, die mit interagiert werden soll DevOps Config Datenmodell.
GitHub Geskriptete und deklarative Pipelines werden unterstützt.
Die ServiceNow DevOps Config Validate (servicenow-devops-config-validieren) und DevOps Config-Export (servicenow-devops-config-Export) GitHub Aktionen werden zum Erstellen einer bestimmten Pipeline-Definition bereitgestellt.
DevOps-Konfigurationsvalidierung (servicenow-devops-config-validieren)
Laden Sie Konfigurationsdaten in ein hoch, und validieren Sie sie ServiceNow Instanz.
- Eingabeargumente
Argument Beschreibung Instanz-url ServiceNow Instanz-URL. devops-Integration-username DevOps Config Integrationsanwendername. devops-Integration-user-password DevOps Config Passwort des Integrationsanwenders. Anwendungsname DevOps Config Anwendungsname. Ziel Datenmodellziel, in das Konfigurationsdateien hochgeladen werden. Beispiel für Datenmodellziele:KomponenteSammlungbereitstellbar
Bereitstellbarer Name Name des bereitstellbaren Elements in DevOps Config Datenmodell. Sammlungsname (Optional) Sammlungsname im Datenmodell. Erforderlich, wenn das Ziel „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-Stil-Muster beim Hochladen mehrerer Dateien in das Datenmodell. Siehe Verzeichnisbasierte Aufgaben Für Informationen zu Ant-Stilmustern in Apache ANT.1.10.14 Manuelle Dokumentation. Datenformat Datenformat der Konfigurationsdateien. Beispieldatenformate sind:CSVINIJSONEigenschaftenRAWXMLYAML
Datenformat-Attribut (Optional) Erweiterte Datenformatattribute zum Analysieren von Konfigurationsdaten. automatisches Commit Boolesche Eingabe (wahr oder falsch) zum Commit von Konfigurationsdaten nach erfolgreichem Upload. Standardwert:
trueautomatisch validieren Boolesche Eingabe (wahr oder falsch) zur Validierung der Konfigurationsdaten nach erfolgreichem Commit. Standardwert:
trueautomatische Veröffentlichung Boolesche Eingabe (wahr oder falsch) zum Veröffentlichen von Konfigurationsdaten nach erfolgreicher Validierung. Standardwert:
trueänderungssatz (Optional) Öffnen Sie das Changeset, das der Upload-Aktion zugeordnet ist. Wenn nicht angegeben, wird ein neues Changeset erstellt. Snapshot-Validation-timeout (Optional) maximale Zeit in Minuten, bis die Validierung abgeschlossen ist, bevor die Aktion fehlschlägt. Standardwert:
60Beenden-bei-Richtlinienvalidierungsfehler (Optional) boolesche Eingabe (wahr oder falsch) zum Beenden von GitHub Workflow nach Fehlern bei der Richtlinienvalidierung. Standardwert:
false- Ausgaben
- changeset-Nummer
Changeset-Nummer, die der Upload-Aktion zugeordnet ist.
- Snapshot-Name
Name des neuesten Snapshots des bereitstellbaren Elements.
- Validierungsstatus
Validierungsstatus des Snapshots. Beispiel:
Bestanden,Pass_with_Exception,Fehlgeschlagen,Execution_error,Not_validated- Validierungsergebnisse
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 Config-Export (servicenow-devops-config-Export)
Exportieren Sie Konfigurationsdaten mit ServiceNow DevOps Config.
- Eingabeargumente
Argument Beschreibung Instanz-url ServiceNow Instanz-URL. devops-Integration-username DevOps Config Integrationsanwendername. devops-Integration-user-password DevOps Config Passwort des Integrationsanwenders. Anwendungsname DevOps Config Anwendungsname. Bereitstellbarer Name Name des bereitstellbaren Elements in DevOps Config Datenmodell. exporter-Name Exporter-Name, der Konfigurationsdaten aus exportiert DevOps Config Datenmodell. 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. exporter-Data-Format (Optional) Format zum Exportieren der Snapshot-Daten. Beispieldatenformate sind:CSVINIJSONEigenschaftenRAWXMLYAML
exporter-Argumente (Optional) Argumente, die zusammen mit dem Exporter verwendet werden sollen. Der Wert muss ein JSON-Objekt sein, das als Zeichenfolge dargestellt wird. - Ausgabe
- exporter-Inhalt
Konfigurationsdaten, die der Exporter exportiert.
- Beispiel – bestimmten Snapshot exportieren
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 – Exportieren Sie den zuletzt 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