Note
Auf GitHub gehostete Runner werden aktuell nicht auf GitHub Enterprise Server unterstützt. Weitere Informationen zur geplanten zukünftigen Unterstützung findest Du in der GitHub public roadmap.
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.
Note
Stelle sicher, dass du nur gültige Workflowdateien an dein Repository committest. 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.
-
Navigieren Sie auf GitHub zur Hauptseite des Repositorys.
-
Klicke unter dem Namen deines Repositorys auf Aktionen.
-
Klicke in der linken Seitenleiste auf den Workflow, den Du sehen willst.
-
Klicke in der Liste der Workflowausführungen auf den Namen der Ausführung, um die Zusammenfassung der Workflowausführung anzuzeigen.
-
Wähle unter Aufträge oder im Visualisierungsdiagramm den Auftrag aus, den du anzeigen möchtest.
-
Alle fehlerhaften Schritte werden automatisch erweitert, um die Ergebnisse anzuzeigen.
-
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.
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.
-
Navigieren Sie auf GitHub zur Hauptseite des Repositorys.
-
Klicke unter dem Namen deines Repositorys auf Aktionen.
-
Klicke in der linken Seitenleiste auf den Workflow, den Du sehen willst.
-
Klicke in der Liste der Workflowausführungen auf den Namen der Ausführung, um die Zusammenfassung der Workflowausführung anzuzeigen.
-
Wähle unter Aufträge oder im Visualisierungsdiagramm den Auftrag aus, den du anzeigen möchtest.
-
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 und Freigeben von Daten aus einem Workflow. Um diese Schritte auszuführen, ist Lesezugriff auf das Repository erforderlich.
-
Navigieren Sie auf GitHub zur Hauptseite des Repositorys.
-
Klicke unter dem Namen deines Repositorys auf Aktionen.
-
Klicke in der linken Seitenleiste auf den Workflow, den Du sehen willst.
-
Klicke in der Liste der Workflowausführungen auf den Namen der Ausführung, um die Zusammenfassung der Workflowausführung anzuzeigen.
-
Wähle unter Aufträge oder im Visualisierungsdiagramm den Auftrag aus, den du anzeigen möchtest.
-
Wähle in der rechten oberen Ecke des Protokolls das Dropdownmenü und dann Protokollarchiv herunterladen aus.
Note
Wenn du das Protokollarchiv für einen Workflow herunterlädst, der teilweise erneut ausgeführt wurde, enthält das Archiv nur die erneut ausgeführten Aufträge. 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
-
Navigieren Sie auf GitHub zur Hauptseite des Repositorys.
-
Klicke unter dem Namen deines Repositorys auf Aktionen.
-
Klicke in der linken Seitenleiste auf den Workflow, den Du sehen willst.
-
Klicke in der Liste der Workflowausführungen auf den Namen der Ausführung, um die Zusammenfassung der Workflowausführung anzuzeigen.
-
Wähle in der rechten oberen Ecke das Dropdownmenü und dann Alle Protokolle löschen aus.
-
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:
-
Kopieren Sie das Codebeispiel, und speichern Sie es in einer Datei namens
delete-logs.sh
. -
Erteilen Sie mit
chmod +x delete-logs.sh
Ausführungsberechtigungen. -
Führen Sie den folgenden Befehl aus. wobei
REPOSITORY_NAME
den Namen Ihres Repositorys undWORKFLOW_NAME
um den Dateinamen Ihres Workflows darstellt.Shell ./delete-logs.sh REPOSITORY_NAME WORKFLOW_NAME
./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
#!/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
#!/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
Note
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 error
enthalten.
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