GitHub Actions Konfigurationen

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 3 Minuten Lesedauer
  • Konfigurationsinformationen zu GitHub Actions, Z. B. Geheimnisse, Workflows und Einschränkungen.

    Geheimnisse in GitHub Actions

    Erstellen Sie Geheimnisse (Anmeldeinformationen) in GitHubRepository oder GitHubOrganisation. Geheimnisse sind Umgebungsvariablen (verschlüsselt), die Sie in einer Organisation oder einem Repository erstellen. Diese Geheimnisse können in verwendet werden GitHub ActionsWorkflows. 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 GitHubTool in erstellt ServiceNowInstanz.
    SN_DEVOPS_INTEGRATION_TOKEN Geheimes Token für GitHubTool in erstellt DevOps( devops-Integration-Token Parameter). Um auf Ihr geheimes Token zuzugreifen, navigieren Sie zu GitHubTooldatensatz in ServiceNow( Alle > Tools > Orchestration-Tools ), und wählen Sie aus Token kopieren In der klassischen UI.

    Workflows in GitHubRepository

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

    Die folgenden Punkte müssen beim Definieren des Workflows 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 befolgen Sie die in definierte 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 Aktionen Die 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 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 ActionsWerden an gesendet ServiceNow DevOpsWann immer ein Workflow ausgeführt oder ausgelöst wird.

    Die folgenden Details werden an gesendet ServiceNowInstanz, wenn ein Workflow für manuell ausgeführt oder automatisch ausgelöst wird GitHubRepository.
    • Der Webhook „Workflow_Job“ benachrichtigt ServiceNowInstanz mit dem Status des Auftrags (in der Warteschlange, in_Progress, Abgeschlossen), wenn der Workflow manuell ausgeführt oder automatisch für ausgelöst wird GitHubRepository.
    • Eingehende Ereignisse werden in erstellt ServiceNowInstanz für den Status des Auftrags (in der Warteschlange, in_Progress und Abgeschlossen) und Ereignisse in_Progress werden ignoriert.
    • Eingehende Ereignisse in der Warteschlange und abgeschlossene Ereignisse werden verarbeitet und ServiceNow DevOpsPipeline-Schritte und Orchestration-Aufgaben werden für Aufträge erstellt, die im Workflow konfiguriert sind.
    • 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 GitHubAufträ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 wiederverwendet, 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 jetzt 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 bei erneuten Ausführungen 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 haben Auftragsname: „<parent-workflow-name>/<child-workflow-name>“ . Hier ist der Abstand vor und nach dem Schrägstrich (/) obligatorisch.

    Abbildung : 1. Beispiel für einen Auftragsnamenparameter im untergeordneten Workflow
    Beispiel für Auftragsnamenparameter.

    GitHub ActionsEinschränkungen für DevOps Change-GeschwindigkeitIntegration

    • GitHub ActionsUnd GitHubUmgebungen werden in unterstützt GitHub EnterpriseServer ab Version 3,3.
    • Für GitHubOrganisationen verwenden einen bestimmten Account (mit Zugriff auf die erforderlichen Organisationen) mit persönlichem Zugriffstoken für die Integration in ServiceNow DevOpsOder Sie können auch verwenden GitHubApps über Autorisierungscode 2,0 oder JWT.

      Zur Toolerstellung mit GitHubApps: JWT. Sie müssen ein separates Tool für eine separate Organisation erstellen.

    • Nur die neuesten GitHub ActionsScan-Ergebnisse können für eine Workflow-Ausführung aus einer Instanz abgerufen werden.
    • ServiceNow DevOps Die 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 ServiceNowInstanz wird nur mit unterstützt GitHub ActionsBereitstellungs-Gates-Funktion. Die Erstellung von Changes ist jedoch sowohl über Bereitstellungs-Gates als auch über die anwenderdefinierte GitHub-Aktion möglich.
    • Anwender, der erstellt GitHubTool in ServiceNowInstanz muss ein Überprüfer sein, für den der Workflow genehmigt werden soll GitHubUmgebungen.