Skip to main content

Verwenden von Workflowausführungsprotokollen

Du kannst Protokolle für jeden Auftrag in einer Workflowausführung anzeigen, durchsuchen und herunterladen.

Auf der Workflow-Lauf-Seite können sie sehen, ob ein Workflow-Lauf ausgeführt wird oder abgeschlossen ist. Du musst mit einem GitHub-Konto angemeldet sein, um Workflow-Informationen anzuzeigen, auch für öffentliche Repositories. Weitere Informationen findest du unter Zugriffsberechtigungen auf GitHub.

Wenn der Lauf abgeschlossen ist, kannst du sehen, ob das Ergebnis erfolgreich, fehlerhaft, abgebrochen oder neutral war. Wenn der Lauf fehlgeschlagen ist, kannst du die Build-Protokolle anzeigen und durchsuchen, um den Fehler zu diagnostizieren und den Workflow erneut auszuführen. Du kannst auch abrechenbare Auftragsausführungsminuten anzeigen oder Protokolle und Buildartefakte herunterladen.

GitHub Actions verwenden die Checks API, um Status, Ergebnisse und Protokolle für einen Workflow auszugeben. GitHub erstellt eine neue Prüfsuite für jeden Workflow-Lauf. Die Prüfsuite enthält einen Prüflauf für jeden Auftrag im Workflow, und jeder Auftrag enthält Schritte. GitHub Actions werden als Schritt in einem Workflow ausgeführt. Weitere Informationen zur Überprüfungs-API findest du unter REST-API-Endpunkte für Prüfungen.

Hinweis: Stelle sicher, dass Du nur gültige Workflowdateien an Dein Repository freigibst. Wenn .github/workflows eine ungültige Workflowdatei enthält, führt GitHub Actions bei jedem neuen Commit zu einem Fehler.

Protokolle zur Fehlerdiagnose anzeigen

Wenn dein Workflow-Lauf fehlschlägt, kannst du sehen, welcher Schritt den Fehler verursacht hat, und die Build-Protokolle des fehlgeschlagenen Schrittes zur Fehlerbehebung überprüfen. Du siehst, wie lange es gedauert hat, bis jeder Schritt ausgeführt wurde. Du kannst außerdem einen Permalink in eine bestimmte Zeile in der Protokolldatei kopieren, um ihn mit deinem Team zu teilen. Um diese Schritte auszuführen, ist Lesezugriff auf das Repository erforderlich.

Neben den in der Workflowdatei konfigurierten Schritten fügt GitHub jedem Auftrag zwei weitere Schritte hinzu, um die Auftragsausführung einzurichten und abzuschließen. Diese Schritte werden in der Workflowausführung mit den Namen „Auftrag einrichten“ und „Auftrag abschließen“ protokolliert.

Bei Aufträgen, die auf GitHub-gehosteten Runnern ausgeführt werden, werden mit „Auftrag einrichten“ Details zum Runner-Image aufgezeichnet. Zudem wird ein Link zu der Liste der vorinstallierten Tools bereitgestellt, die auf dem Runnercomputer vorhanden waren.

  1. Navigiere auf GitHub.com zur Hauptseite des Repositorys.

  2. Klicke unter dem Namen deines Repositorys auf Aktionen.

    Screenshot: Registerkarten für das Repository „github/docs“. Die Registerkarte „Aktionen“ ist mit einem orangefarbenen Rahmen hervorgehoben.

  3. Klicke in der linken Seitenleiste auf den Workflow, den Du sehen willst.

    Screenshot der linken Randleiste der Registerkarte „Aktionen“. Ein Workflow, „CodeQL“, ist dunkelorange umrandet.

  4. Klicke in der Liste der Workflowausführungen auf den Namen der Ausführung, um die Zusammenfassung der Workflowausführung anzuzeigen.

  5. Wähle unter Aufträge oder im Visualisierungsdiagramm den Auftrag aus, den du anzeigen möchtest.

  6. Alle fehlerhaften Schritte werden automatisch erweitert, um die Ergebnisse anzuzeigen.

  7. Klicke bei Bedarf auf die Zeilennummer des Schritts, um einen Link zu einer bestimmten Zeile in den Logs zu erhalten. Den Link kannst du anschließend aus der Adressleiste deines Webbrowsers kopieren.

    Screenshot der Protokolle für einen Auftrag. Die Protokolle für einen fehlerhaften Schritt sind erweitert, und eine Zeilennummer ist mit einem orangefarbenen Umriss hervorgehoben.

Protokolle durchsuchen

Du kannst die Build-Protokolle für einen bestimmten Schritt durchsuchen. Beim Durchsuchen von Protokollen werden nur eingeblendete Schritte in die Ergebnisse einbezogen. Um diese Schritte auszuführen, ist Lesezugriff auf das Repository erforderlich.

  1. Navigiere auf GitHub.com zur Hauptseite des Repositorys.

  2. Klicke unter dem Namen deines Repositorys auf Aktionen.

    Screenshot: Registerkarten für das Repository „github/docs“. Die Registerkarte „Aktionen“ ist mit einem orangefarbenen Rahmen hervorgehoben.

  3. Klicke in der linken Seitenleiste auf den Workflow, den Du sehen willst.

    Screenshot der linken Randleiste der Registerkarte „Aktionen“. Ein Workflow, „CodeQL“, ist dunkelorange umrandet.

  4. Klicke in der Liste der Workflowausführungen auf den Namen der Ausführung, um die Zusammenfassung der Workflowausführung anzuzeigen.

  5. Wähle unter Aufträge oder im Visualisierungsdiagramm den Auftrag aus, den du anzeigen möchtest.

  6. Gib oben rechts in der Protokollausgabe eine Suchanfrage in das Suchfeld Protokolle durchsuchen ein.

Herunterladen von Protokollen

Du kannst die Protokolldateien aus deiner Workflowausführung löschen. Außerdem kannst du Artefakte eines Workflows herunterladen. Weitere Informationen findest du unter Speichern von Workflowdaten als Artefakte. Um diese Schritte auszuführen, ist Lesezugriff auf das Repository erforderlich.

  1. Navigiere auf GitHub.com zur Hauptseite des Repositorys.

  2. Klicke unter dem Namen deines Repositorys auf Aktionen.

    Screenshot: Registerkarten für das Repository „github/docs“. Die Registerkarte „Aktionen“ ist mit einem orangefarbenen Rahmen hervorgehoben.

  3. Klicke in der linken Seitenleiste auf den Workflow, den Du sehen willst.

    Screenshot der linken Randleiste der Registerkarte „Aktionen“. Ein Workflow, „CodeQL“, ist dunkelorange umrandet.

  4. Klicke in der Liste der Workflowausführungen auf den Namen der Ausführung, um die Zusammenfassung der Workflowausführung anzuzeigen.

  5. Wähle unter Aufträge oder im Visualisierungsdiagramm den Auftrag aus, den du anzeigen möchtest.

  6. Wähle in der rechten oberen Ecke des Protokolls das Dropdownmenü und dann Protokollarchiv herunterladen aus.

    Screenshot des Protokolls für einen Auftrag. In der Kopfzeile ist ein Zahnradsymbol dunkelorange umrandet.

Hinweis: Wenn du das Protokollarchiv für einen Workflow herunterlädst, der teilweise erneut ausgeführt wurde, enthält das Archiv nur die Aufträge, die erneut ausgeführt wurden. Zum Abrufen einer vollständigen Menge von Protokollen, die über einen Workflow ausgeführt wurden, musst du die Protokollarchive für die vorherigen Ausführungsversuche herunterladen, bei denen die anderen Aufträge ausgeführt wurden.

Logs löschen

Sie können die Protokolldateien aus Ihren Workflows löschen, die über die GitHub-Webschnittstelle oder programmgesteuert ausgeführt werden. Um diese Schritte auszuführen, ist Schreibzugriff auf das Repository erforderlich.

Löschen von Protokollen über die GitHub-Webschnittstelle

  1. Navigiere auf GitHub.com zur Hauptseite des Repositorys.

  2. Klicke unter dem Namen deines Repositorys auf Aktionen.

    Screenshot: Registerkarten für das Repository „github/docs“. Die Registerkarte „Aktionen“ ist mit einem orangefarbenen Rahmen hervorgehoben.

  3. Klicke in der linken Seitenleiste auf den Workflow, den Du sehen willst.

    Screenshot der linken Randleiste der Registerkarte „Aktionen“. Ein Workflow, „CodeQL“, ist dunkelorange umrandet.

  4. Klicke in der Liste der Workflowausführungen auf den Namen der Ausführung, um die Zusammenfassung der Workflowausführung anzuzeigen.

  5. Wähle in der rechten oberen Ecke das Dropdownmenü und dann Alle Protokolle löschen aus.

    Screenshot der Seite für eine Workflowausführung. In der rechten oberen Ecke ist eine Schaltfläche mit drei Punkten dunkelorange umrandet.

  6. Lies die Informationen in der Bestätigungsaufforderung.

Nach dem Löschen von Protokollen wird die Schaltfläche Alle Protokolle löschen entfernt, um darauf hinzuweisen, dass keine Protokolldateien mehr in der Workflowausführung vorhanden sind.

Programmgesteuertes Löschen von Protokollen

Sie können das folgende Skript verwenden, um automatisch alle Protokolle für einen Workflow zu löschen. Dies kann eine nützliche Methode sein, um Protokolle für mehrere Workflow-Ausführungen zu bereinigen.

So führen Sie das folgende Beispielskript aus:

  1. Kopieren Sie das Codebeispiel, und speichern Sie es in einer Datei namens delete-logs.sh.

  2. Erteilen Sie mit chmod +x delete-logs.sh Ausführungsberechtigungen.

  3. Führen Sie den folgenden Befehl aus. wobei REPOSITORY_NAME den Namen Ihres Repositorys und WORKFLOW_NAME um den Dateinamen Ihres Workflows darstellt.

    Shell
    ./delete-logs.sh REPOSITORY_NAME WORKFLOW_NAME
    

    Um beispielsweise alle Protokolle im monalisa/octocat-Repository für den .github/workflows/ci.yaml-Workflow zu löschen, würden Sie ./delete-logs.sh monalisa/octocat ci.yaml ausführen.

Beispielskript

Bash
#!/usr/bin/env bash

# Delete all logs for a given workflow
# Usage: delete-logs.sh <repository> <workflow-name>

set -oe pipefail

REPOSITORY=$1
WORKFLOW_NAME=$2

# Validate arguments
if [[ -z "$REPOSITORY" ]]; then
  echo "Repository is required"
  exit 1
fi

if [[ -z "$WORKFLOW_NAME" ]]; then
  echo "Workflow name is required"
  exit 1
fi

echo "Getting all completed runs for workflow $WORKFLOW_NAME in $REPOSITORY"

RUNS=$(
  gh api \
    -H "Accept: application/vnd.github+json" \
    -H "X-GitHub-Api-Version: 2022-11-28" \
    "/repos/$REPOSITORY/actions/workflows/$WORKFLOW_NAME/runs" \
    --paginate \
    --jq '.workflow_runs[] | select(.conclusion != "") | .id'
)

echo "Found $(echo "$RUNS" | wc -l) completed runs for workflow $WORKFLOW_NAME"

# Delete logs for each run
for RUN in $RUNS; do
  echo "Deleting logs for run $RUN"
  gh api \
    --silent \
    --method DELETE \
    -H "Accept: application/vnd.github+json" \
    -H "X-GitHub-Api-Version: 2022-11-28" \
    "/repos/$REPOSITORY/actions/runs/$RUN/logs" || echo "Failed to delete logs for run $RUN"

  # Sleep for 100ms to avoid rate limiting
  sleep 0.1
done

Anzeigen von Protokollen mit GitHub CLI

Weitere Informationen zur GitHub CLI findest du unter Informationen zur GitHub CLI.

Verwende den Unterbefehl run view, um das Protokoll für einen bestimmten Auftrag anzuzeigen. Ersetze run-id durch die ID der Ausführung, für die du Protokolle anzeigen möchtest. GitHub CLI gibt ein interaktives Menü zurück, in dem du einen Auftrag aus der Ausführung auswählen kannst. Wenn du run-id nicht angibst, gibt GitHub CLI nacheinander zwei interaktive Menüs zurück: das erste zum Auswählen einer kürzlich erfolgten Ausführung und das zweite zum Auswählen eines Auftrags aus der Ausführung.

gh run view RUN_ID --log

Du kannst auch das Flag --job verwenden, um eine Auftrags-ID anzugeben. Ersetze job-id durch die ID des Auftrags, für den du Protokolle anzeigen möchtest.

gh run view --job JOB_ID --log

Du kannst grep verwenden, um das Protokoll zu durchsuchen. Mit diesem Befehl können beispielsweise alle Protokolleinträge zurückgegeben werden, die das Wort errorenthalten.

gh run view --job JOB_ID --log | grep error

Zum Filtern der Protokolle nach fehlgeschlagenen Schritten verwende --log-failed anstelle von --log.

gh run view --job JOB_ID --log-failed