GitHub Actions-Konfigurationen
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.
- Alle Workflows Ihres Repositorys müssen entweder eine .yml- oder .yaml-Dateierweiterung haben. Alle Workflows müssen unter liegen
.github/WorkflowsVerzeichnis und folgen Sie der in definierten Syntax Workflow-Syntax für GitHub-Aktionen . - Der Name des Workflows muss mit dem Namen der Workflow-Datei übereinstimmen.
- Die Namen der Workflows unter Alle Workflows Auf der Aktionen Registerkarte muss mit den unter gespeicherten Workflows übereinstimmen
.github/WorkflowsVerzeichnis Ihres Repositorys. - 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.
- Verwenden Sie
Workflow_DispatchEreignis zum manuellen Auslösen eines Workflows.
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.
- 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
- 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.
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 detaillierte Informationen zu GitHub Umgebungen, siehe Verwenden von Umgebungen für die Bereitstellung .
- GitHub Umgebungen sind nur für private Repositorys in verfügbar GitHub Enterprise Cloud.
- 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.