GitHub Actions-Konfigurationen

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 4 Minuten Lesedauer
  • Konfigurationsinformationen zu GitHub Actions, Z. B. Geheimnisse, Workflows und Einschränkungen.

    Geheimnisse in GitHub Actions

    Erstellen Sie Geheimnisse (Anmeldeinformationen) in GitHub Repository oder GitHub Organisation. Geheimnisse sind Umgebungsvariablen (verschlüsselt), die Sie in einer Organisation oder einem Repository erstellen. Diese Geheimnisse können in verwendet werden GitHub Actions Workflows. Weitere Informationen finden Sie unter Verschlüsselte Geheimnisse .

    Geheimnis Beschreibung
    SN_INSTANCE_URL ServiceNow Instanz-URL. Beispiel: Https://<instance_name>.service-now.com.
    SN_ORCHESTRATION_TOOL_ID SYS_ID für GitHub Tool wurde in erstellt ServiceNow Instanz.
    SN_DEVOPS_INTEGRATION_TOKEN Geheimes Token für GitHub Tool wurde in erstellt DevOps( devops-Integration-Token Parameter). Um auf Ihr geheimes Token zuzugreifen, navigieren Sie zu GitHub Tooldatensatz in ServiceNow( Alle > Tools > Orchestration-Tools ), und wählen Sie aus Token kopieren In der klassischen UI.

    -Workflows in GitHub Repository

    Erstellen Sie eine YAML-Datei, um die Workflow-Konfiguration in zu definieren GitHub Repository.

    Bei der Definition des Workflows müssen die folgenden Punkte berücksichtigt werden:
    • Alle Workflows Ihres Repositorys müssen entweder eine .yml- oder .yaml-Dateierweiterung haben. Alle Workflows müssen unter liegen .github/Workflows Verzeichnis und folgen Sie der in definierten Syntax Workflow-Syntax für GitHub-Aktionen .

      Workflows auf der Registerkarte GitHub-Aktionen

    • Der Name des Workflows muss mit dem Namen der Workflow-Datei übereinstimmen.

      Der Name des Workflows muss mit dem Dateinamen übereinstimmen

    • Die Namen der Workflows unter Alle Workflows Auf der Aktionen Registerkarte muss mit den unter gespeicherten Workflows übereinstimmen .github/Workflows Verzeichnis Ihres Repositorys.

      Platzierung von Workflow-Dateien auf der Registerkarte Aktionen

    • Für jeden Auftrag muss ein Anzeigename angegeben werden und für jeden Auftrag im Workflow eindeutig sein. Der Auftragsname muss mit dem Phasennamen in der anwenderdefinierten Aktion übereinstimmen.

      Auftragsname in anwenderdefinierter Aktion

    • Verwenden Sie Workflow_Dispatch Ereignis zum manuellen Auslösen eines Workflows.

      Manuelles Auslösen eines Workflows mithilfe eines Ereignisses

    GitHub Actions Workflow-Ausführungsdetails in DevOps

    Nachdem Sie die Webhooks konfiguriert haben, die Benachrichtigungen von GitHub Actions Werden an gesendet ServiceNow DevOps Wann immer ein Workflow ausgeführt oder ausgelöst wird.

    Die folgenden Details werden an gesendet ServiceNow Instanz, wenn ein Workflow manuell ausgeführt oder automatisch auf einem ausgelöst wird GitHub Repository.
    • Der Webhook „Workflow_Job“ benachrichtigt den ServiceNow Instanz mit dem Status des Auftrags (Warteschlange, in_Progress, Abgeschlossen), wenn der Workflow manuell ausgeführt oder automatisch für ausgelöst wird GitHub Repository.
    • Eingehende Ereignisse werden in erstellt ServiceNow Instanz für den Status des Auftrags (Warteschlange, in_Progress und Abgeschlossen) und Ereignisse in_Progress werden ignoriert.
    • Eingehende Ereignisse in der Warteschlange und abgeschlossen werden verarbeitet und ServiceNow DevOps Pipeline-Schritte und Orchestration-Aufgaben werden für im Workflow konfigurierte Aufträge erstellt.
    • Die Pipeline-Ausführung wird für jede Workflow-Ausführung mit Datensätzen für Aufgabenausführungen und Schrittausführungen erstellt, die für jeden in der Workflow-Ausführung ausgeführten Auftrag erstellt werden.
    • Sie können die Pipeline-UI verwenden, um Interaktionen und Ergebnisse in einer Pipeline-Ausführung zu visualisieren.

    GitHub Wird erneut ausgeführt

    Change-Anforderungen für erstellt GitHub Aufträge werden wiederverwendet, wenn sich die Change-Anforderungen in der Phase „Implementieren“ und „nach der Implementierung“ befinden. Beispiel: Für eine Pipeline-Ausführung:
    • Wenn ein Auftrag fehlschlägt, bevor sich die Change-Anforderung in der Implementierungsphase befindet, wird die erstellte Change-Anforderung nicht erneut verwendet, wenn die fehlgeschlagenen Aufträge erneut ausgeführt werden.
    • Wenn die fehlgeschlagenen Aufträge oder alle Aufträge erneut ausgeführt werden, wird eine neue Change-Anforderung erstellt.
    • Wenn nun ein Auftrag fehlschlägt, während sich die Change-Anforderung in der Phase „Implementieren“ oder „nach der Implementierung“ befindet, wird die Change-Anforderung wiederverwendet, wenn die fehlgeschlagenen Aufträge oder alle Aufträge erneut ausgeführt werden.
      Hinweis:
      Wenn die Change-Anforderung bereits in einem vorherigen Schritt implementiert ist, bevor der Auftrag fehlgeschlagen ist, wird die Pipeline-Ausführung während der erneuten Ausführung nicht angehalten. Die Change-Anforderung wird als bereits genehmigt und implementiert betrachtet.

    Zusammengesetzte Workflows

    Für zusammengesetzte Workflows, bei denen ein Workflow einen anderen Workflow aufruft und sich der Change-Schritt im untergeordneten Workflow befindet, die job-nameParameter für den Change-Schritt muss das Format aufweisen Auftragsname: „<parent-job-name>/<child-job-name>“ . Hier ist der Abstand vor und nach dem Schrägstrich (/) obligatorisch.

    Abbildung : 1. Beispiel für einen Job-Name-Parameter im untergeordneten Workflow
    Beispiel für einen Job-Name-Parameter.

    GitHub Actions Einschränkungen für DevOps Change-Geschwindigkeit Integration

    • GitHub Actions Und GitHub Umgebungen werden in unterstützt GitHub Enterprise Server ab Version 3,3.
    • Für GitHub Organisationen verwenden einen bestimmten Account (mit Zugriff auf die erforderlichen Organisationen) mit persönlichem Zugriffstoken für die Integration mit ServiceNow DevOps Oder Sie können auch verwenden GitHub Apps über Autorisierungscode 2,0 oder JWT.

      Für die Toolerstellung mit GitHub Apps: JWT. Sie müssen ein separates Tool für eine separate Organisation erstellen.

    • Nur die neuesten GitHub Actions Scan-Ergebnisse können für eine Workflow-Ausführung aus einer Instanz abgerufen werden.
    • ServiceNow DevOps Change-Automatisierung mit anwenderdefinierter Aktion oder Umgebung wird für parallele Aufträge nicht unterstützt. Bei parallelen Aufträgen enthält die Nutzlast der Webhook-Benachrichtigung keine Informationen zu den Aufgaben, die parallel mit einer Sequenznummer ausgeführt werden. Aufgrund dieser Einschränkung hängt die Reihenfolge der Aufträge von der Ausführungsreihenfolge ab, die von der Antwort der API (/repos/{owner}/{repo}/actions/runs/{Run_ID}/Jobs) zurückgegeben wird.
    • Rückruf-URL zum Anhalten und Fortsetzen der Workflow-Ausführung über ServiceNow Instanz wird nur mit unterstützt GitHub Actions Bereitstellungs-Gates-Funktion. Die Erstellung von Changes ist jedoch sowohl über Bereitstellungs-Gates als auch über die anwenderdefinierte GitHub-Aktion möglich.
    • Anwender, der erstellt GitHub-Tool in ServiceNow Instanz muss ein Prüfer sein, für den der Workflow genehmigt werden kann GitHub Umgebungen.