GitHub Actions Konfigurationen
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.
- Alle Workflows Ihres Repositorys müssen entweder eine .yml- oder .yaml-Dateierweiterung haben. Alle Workflows müssen unter liegen
.github/WorkflowsVerzeichnis und befolgen Sie die in definierte 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 Aktionen Die Registerkarte muss mit den unter gespeicherten Workflows übereinstimmen
.github/WorkflowsVerzeichnis Ihres Repositorys. - 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.
- 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 ActionsWerden an gesendet ServiceNow DevOpsWann immer ein Workflow ausgeführt oder ausgelöst wird.
- 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
- 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.
GitHub ActionsEinschränkungen für DevOps Change-GeschwindigkeitIntegration
- GitHub ActionsUnd GitHubUmgebungen werden in unterstützt GitHub EnterpriseServer ab Version 3,3.
- Für detaillierte Informationen zu GitHubUmgebungen, siehe Verwenden von Umgebungen für die Bereitstellung .
- GitHubUmgebungen sind nur für private Repositorys in verfügbar GitHub EnterpriseCloud.
- 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.