Skip to main content

Problembehandlung bei GitHub Actions für Ihr Unternehmen

Beheben häufiger Probleme, die bei der Verwendung von GitHub Actions auf GitHub Enterprise Server auftreten.

Wer kann dieses Feature verwenden?

Site administrators can troubleshoot GitHub Actions issues and modify GitHub Enterprise Server configurations.

Überprüfen des Status von GitHub Actions

Sie können den Status von GitHub Actions unter Ihre GitHub Enterprise Server-Instance mit dem Befehlszeilenprogramm ghe-actions-check überprüfen. Weitere Informationen findest du unter Befehlszeilenwerkzeuge und Auf die Verwaltungsshell (SSH) zugreifen.

Konfigurieren von selbst gehosteten Läufern bei Verwendung eines selbstsignierten Zertifikats für GitHub Enterprise Server

Es wird dringend empfohlen, TLS für GitHub Enterprise Server mit einem Zertifikat zu konfigurieren, das von einem vertrauenswürdigen Aussteller signiert ist. Ein selbst signiertes Zertifikat kann zwar funktionieren, erfordert jedoch zusätzliche Konfiguration für deine selbstgehosteten Runner und wird für Produktionsumgebungen nicht empfohlen. Weitere Informationen finden Sie unter TLS konfigurieren.

Installieren des Zertifikats auf dem Runnercomputer

Damit ein selbstgehosteter Runner eine Verbindung zu einem GitHub Enterprise Server herstellen kann, das ein selbstsigniertes Zertifikat verwendet, müssen Sie das Zertifikat auf dem Computer des Runners installieren, damit die Verbindung sicher abgesichert ist.

Die zur Installation eines Zertifikats erforderlichen Schritte findest du in der Dokumentation für das Betriebssystem des Runners.

Konfigurieren von Node.js für die Verwendung des Zertifikats

Die meisten Aktionen werden in JavaScript geschrieben und mithilfe von Node.js ausgeführt, wobei Node.js nicht den Zertifikatspeicher des Betriebssystems verwendet. Damit die selbstgehostete Runneranwendung das Zertifikat verwendet, musst du die Umgebungsvariable NODE_EXTRA_CA_CERTS auf dem Runnercomputer festlegen.

Sie können die Umgebungsvariable als Systemumgebungsvariable festlegen oder sie in einer Datei namens .env im selbstgehosteten Runner-Anwendungsverzeichnis deklarieren (d. h. dem Verzeichnis, in das Sie die Runner-Software heruntergeladen und entpackt haben).

Zum Beispiel:

NODE_EXTRA_CA_CERTS=/usr/share/ca-certificates/extra/mycertfile.crt

Umgebungsvariablen werden gelesen, wenn die selbstgehostete Runneranwendung gestartet wird. Daher musst du die Umgebungsvariable festlegen, bevor du die Runneranwendung konfigurierst oder startest. Wenn sich deine Zertifikatkonfiguration ändert, musst du die selbstgehostete Runneranwendung neu starten.

Konfigurieren von Docker-Containern für die Verwendung des Zertifikats

Wenn du Docker-Containeraktionen oder Dienstcontainer in deinen Workflows verwendest, musst du das Zertifikat möglicherweise auch in deinem Docker-Image installieren und zusätzlich die oben genannte Umgebungsvariable festlegen.

Konfigurieren von HTTP-Proxyeinstellungen für GitHub Actions

Wenn Sie einen HTTP-Proxyserver auf GitHub konfiguriert haben:

  • Sie müssen .localhost, 127.0.0.1 und ::1 zu der HTTP-Proxy-Ausschlussliste hinzufügen (in dieser Reihenfolge).
  • Wenn dein externer Speicherort nicht routingfähig ist, musst du der Ausschlussliste auch die URL zu deinem externen Speicher hinzufügen.

Weitere Informationen zum Ändern deiner Proxyeinstellungen findest du unter Konfigurieren eines ausgehenden Webproxyservers.

Wenn diese Einstellungen nicht korrekt konfiguriert sind, könnten Sie beim Festlegen oder Ändern Ihrer GitHub Actions-Konfiguration Fehler wie Resource unexpectedly moved to https://IP-ADDRESS erhalten.

Runners stellen keine Verbindung zu GitHub Enterprise Server unter einem neuen Hostnamen her

Warnung

Ändere den Hostnamen für GitHub Enterprise Server nach der Ersteinrichtung nicht mehr. Das Ändern des Hostnamens wird zu unerwartetem Verhalten führen, bis hin zu Instanzausfällen und der Ungültigkeit der Sicherheitsschlüssel der Benutzer. Wenn Sie den Hostnamen für Ihre Instanz geändert haben und Probleme auftreten, wenden Sie sich an GitHub Enterprise-Support oder GitHub Premium-Support.

Wenn Sie GitHub Enterprise Server in Ihrer Umgebung mit einem neuen Hostnamen bereitstellen und der alte Hostname nicht mehr auf Ihre Instanz verweist, können selbstgehostete Runner keine Verbindung zum alten Hostnamen herstellen und daher keine Jobs ausführen.

Sie müssen die Konfiguration Ihrer selbstgehosteten Runner aktualisieren, sodass sie den neuen Hostnamen für Ihre GitHub Enterprise Server-Instance verwenden. Jeder selbstgehostete Runner erfordert eine der folgenden Vorgehensweisen:

  • Bearbeite im Verzeichnis der selbstgehosteten Anwendung die .runner- und .credentials-Dateien, und ersetze alle Erwähnungen des alten Hostnamens durch den neuen. Starte anschließend die selbstgehostete Runneranwendung neu.
  • Entfernen Sie den Runner über die Benutzeroberfläche aus GitHub Enterprise Server und fügen Sie ihn erneut hinzu. Weitere Informationen findest du unter Selbst-gehostete Runner entfernen und Selbst-gehostete Runner hinzufügen.

Problembehandlung bei Fehlern, wenn Dependabot vorhandene Workflows auslöst

Nachdem Sie Dependabot Updates für Ihre GitHub Enterprise Server-Instance eingerichtet haben, kann es zu Fehlern kommen, wenn vorhandene Workflows durch Dependabot-Ereignisse ausgelöst werden.

Standardmäßig werden GitHub Actions Workflow-Ausführungen, die durch Dependabot von push, pull_request, pull_request_review oder pull_request_review_comment-Ereignissen ausgelöst werden, so behandelt, als ob sie aus einem Repository-Fork geöffnet worden wären. Im Gegensatz zu Workflows, die von anderen Akteuren ausgelöst werden, bedeutet dies, dass sie ein schreibgeschütztes GITHUB_TOKEN erhalten und keinen Zugriff auf Geheimnisse haben, die normalerweise verfügbar sind. Dies führt dazu, dass alle Workflows, die versuchen, in das Repository zu schreiben, fehlschlagen, wenn sie durch Dependabotausgelöst werden.

Es gibt drei Möglichkeiten, dieses Problem zu beheben:

  1. Sie können Ihre Workflows so aktualisieren, dass sie nicht länger durch Dependabot ausgelöst werden, und dazu einen Ausdruck wie diesen verwenden: if: github.actor != 'dependabot[bot]'. Weitere Informationen finden Sie unter Auswerten von Ausdrücken in Workflows und Aktionen.
  2. Du kannst deine Workflows so ändern, dass sie einen zweistufigen Prozess mit pull_request_target verwenden, das nicht diesen Einschränkungen unterliegt. Weitere Informationen finden Sie unter Fehlerbehebung für Dependabot in GitHub Actions.
  3. Sie können Workflows bereitstellen, die durch den Zugriff auf Geheimnisse über Dependabot ausgelöst werden, und dem Ausdruck permissions ermöglichen, den Standardbereich von GITHUB_TOKEN zu erweitern. Weitere Informationen finden Sie unter Bereitstellen von Workflows, die durch Dependabot den Zugriff auf geheime Schlüssel und erhöhte Berechtigungen ausgelöst werden.

Bereitstellen von Workflows, die durch Dependabot den Zugriff auf geheime Schlüssel und erhöhte Berechtigungen ausgelöst werden

  1. Melde dich mit SSH bei der Verwaltungsshell an. Weitere Informationen finden Sie unter Auf die Verwaltungsshell (SSH) zugreifen.

  2. Verwenden Sie den folgenden Befehl, um die Einschränkungen für Workflows zu entfernen, die von Dependabot auf Ihre GitHub Enterprise Server-Instance ausgelöst werden.

    ghe-config app.actions.disable-dependabot-enforcement true
    
  3. Wende die Konfiguration an.

    ghe-config-apply
    
  4. Kehren Sie zu GitHub Enterprise Server zurück.

Fehlerbehebung für gebündelte Aktionen in GitHub Actions

Wenn bei der Installation von GitHub Actions in GitHub Enterprise Server der folgende Fehler auftritt, können Sie das Problem beheben, indem Sie die offiziellen gebündelten Aktionen und Workflow-Vorlagen installieren.

A part of the Actions setup had problems and needs an administrator to resolve.

Gehen Sie wie folgt vor, um die offiziellen gebündelten Aktionen und Workflowvorlagen innerhalb einer festgelegten Organisation in GitHub Enterprise Server zu installieren.

  1. Geben Sie eine Organisation an, in der die offiziellen gebündelten Aktionen und Workflowvorlagen gespeichert werden sollen. Du kannst eine neue Organisation erstellen oder eine vorhandene verwenden.

  2. Melde dich mit SSH bei der Verwaltungsshell an. Weitere Informationen finden Sie unter Auf die Verwaltungsshell (SSH) zugreifen.

  3. Um deine Organisation als Speicherort für gebündelte Aktionen festzulegen, verwende den Befehl ghe-config aus, indem du ORGANIZATION durch den Namen deiner Organisation ersetzt.

    ghe-config app.actions.actions-org ORGANIZATION
    

    und:

    ghe-config app.actions.github-org ORGANIZATION
    
  4. Um die gebündelten Aktionen zu deiner Organisation hinzuzufügen, lösche den SHA-Wert.

    ghe-config --unset 'app.actions.actions-repos-sha1sum'
    
  5. Wende die Konfiguration an.

    ghe-config-apply
    

Nachdem Sie diese Schritte abgeschlossen haben, können Sie die Konfiguration GitHub Actions bei Erste Schritte mit GitHub Actions für GitHub Enterprise Server fortsetzen.