Vous pouvez voir si une exécution de workflow est en cours ou terminée à partir de la page d’exécutions de workflow. Vous devez être connecté à un compte GitHub pour afficher les informations sur les exécutions de workflow, notamment pour les dépôts publics. Pour plus d’informations, consultez « Autorisations d’accès sur GitHub ».
Si l’exécution est terminée, vous pouvez voir si le résultat a été un succès, un échec, une annulation ou une opération neutre. Si l’exécution a échoué, vous pouvez afficher les journaux de génération et y effectuer des recherches pour diagnostiquer l’échec et réexécuter le workflow. Vous pouvez également afficher les minutes d’exécution de travaux facturables, ou télécharger les journaux et les artefacts de build.
GitHub Actions utilise l’API Vérifications pour générer des états, résultats et journaux pour un workflow. GitHub crée une suite de vérifications pour chaque exécution de workflow. La suite de vérifications contient une exécution de vérification pour chaque travail dans le workflow, et chaque travail inclut des étapes. GitHub Actions est exécuté en tant qu’étape dans un workflow. Pour plus d’informations sur l’API Vérifications, consultez « Points de terminaison d’API REST pour les vérifications ».
Remarque : Vérifiez que vous commitez uniquement des fichiers de workflow valides dans votre dépôt. Si .github/workflows
contient un fichier de workflow non valide, GitHub Actions génère une exécution de workflow défaillante pour chaque nouveau commit.
Affichage des journaux pour diagnostiquer les défaillances
Si l’exécution de votre workflow échoue, vous pouvez voir quelle étape a provoqué l’échec et passer en revue les journaux de génération de l’étape ayant échoué pour résoudre les problèmes. Vous pouvez voir le temps nécessaire à l’exécution de chaque étape. Vous pouvez également copier un lien permanent vers une ligne spécifique dans le fichier journal à partager avec votre équipe. L’accès en lecture au dépôt est requis pour effectuer ces étapes.
Outre les étapes configurées dans le fichier de workflow, GitHub ajoute deux étapes supplémentaires à chaque travail pour configurer et terminer l’exécution du travail. Ces étapes sont enregistrées dans l’exécution du workflow avec les noms « Configurer un travail » et « Terminer un travail ».
Pour les travaux exécutés sur les exécuteurs hébergés par GitHub, « Configurer un travail » enregistre les détails de l’image de l’exécuteur et inclut un lien vers la liste des outils préinstallés présents sur l’ordinateur de l’exécuteur.
-
Sur GitHub, accédez à la page principale du référentiel.
-
Sous le nom de votre dépôt, cliquez sur Actions.
-
Dans la barre latérale gauche, cliquez sur le workflow que vous souhaitez afficher.
-
Dans la liste des exécutions de workflow, cliquez sur le nom de l’exécution pour voir le résumé de l’exécution du workflow.
-
Sous Travaux ou dans le graphe de visualisation, cliquez sur le travail que vous souhaitez afficher.
-
Toutes les étapes qui ont échoué sont automatiquement développées pour afficher les résultats.
-
Si vous le souhaitez, pour bénéficier d’un lien vers une ligne spécifique des journaux, cliquez sur le numéro de ligne de l’étape. Vous pouvez ensuite copier le lien à partir de la barre d’adresses de votre navigateur web.
Recherche dans les journaux
Vous pouvez rechercher dans les journaux de génération une étape particulière. Lorsque vous effectuez une recherche dans les journaux, seules les étapes développées sont incluses dans les résultats. L’accès en lecture au dépôt est requis pour effectuer ces étapes.
-
Sur GitHub, accédez à la page principale du référentiel.
-
Sous le nom de votre dépôt, cliquez sur Actions.
-
Dans la barre latérale gauche, cliquez sur le workflow que vous souhaitez afficher.
-
Dans la liste des exécutions de workflow, cliquez sur le nom de l’exécution pour voir le résumé de l’exécution du workflow.
-
Sous Travaux ou dans le graphe de visualisation, cliquez sur le travail que vous souhaitez afficher.
-
Dans le coin supérieur droit de la sortie du journal, dans la zone de recherche Rechercher dans les journaux, tapez une requête de recherche.
Téléchargement des journaux
Vous pouvez télécharger les fichiers journaux à partir de votre exécution de workflow. Vous pouvez également télécharger les artefacts d’un workflow. Pour plus d’informations, consultez « Stockage et partage des données d’un workflow ». L’accès en lecture au dépôt est requis pour effectuer ces étapes.
-
Sur GitHub, accédez à la page principale du référentiel.
-
Sous le nom de votre dépôt, cliquez sur Actions.
-
Dans la barre latérale gauche, cliquez sur le workflow que vous souhaitez afficher.
-
Dans la liste des exécutions de workflow, cliquez sur le nom de l’exécution pour voir le résumé de l’exécution du workflow.
-
Sous Travaux ou dans le graphe de visualisation, cliquez sur le travail que vous souhaitez afficher.
-
Dans le coin supérieur droit du journal, sélectionnez le menu déroulant et cliquez sur Télécharger l’archive du journal.
Remarque : Lorsque vous téléchargez l’archive des journaux pour un workflow partiellement réexécuté, l’archive inclut uniquement les travaux qui ont été réexécutés. Pour obtenir un ensemble complet de journaux pour les travaux exécutés à partir d’un workflow, vous devez télécharger les archives des journaux pour les tentatives d’exécution précédentes qui ont exécuté les autres travaux.
Suppression des journaux
Vous pouvez supprimer les fichiers journaux de l’exécution de votre workflow via l’interface web GitHub ou par programmation. L’accès en écriture au dépôt est requis pour effectuer ces étapes.
Suppression des journaux d’activité via l’interface web GitHub
-
Sur GitHub, accédez à la page principale du référentiel.
-
Sous le nom de votre dépôt, cliquez sur Actions.
-
Dans la barre latérale gauche, cliquez sur le workflow que vous souhaitez afficher.
-
Dans la liste des exécutions de workflow, cliquez sur le nom de l’exécution pour voir le résumé de l’exécution du workflow.
-
Dans le coin supérieur droit, sélectionnez le menu déroulant et cliquez sur Supprimer tous les journaux.
-
Passez en revue la demande de confirmation.
Une fois les journaux supprimés, le bouton Supprimer tous les journaux est supprimé pour indiquer qu’aucun fichier journal n’est conservé dans l’exécution de workflow.
Suppression des journaux d'activité par programmation
Vous pouvez utiliser le script suivant pour supprimer automatiquement tous les journaux d’activité d’un workflow. Il peut s’agir d’un moyen utile de nettoyer les journaux d'activité pour plusieurs exécutions de workflow.
Pour exécuter l’exemple de script ci-dessous :
-
Copiez l’exemple de code et enregistrez-le dans un fichier appelé
delete-logs.sh
. -
Octroyez les autorisations d’exécution avec
chmod +x delete-logs.sh
. -
Exécutez la commande suivante, où
REPOSITORY_NAME
correspond au nom de votre référentiel etWORKFLOW_NAME
au nom de fichier de votre workflow.Shell ./delete-logs.sh REPOSITORY_NAME WORKFLOW_NAME
./delete-logs.sh REPOSITORY_NAME WORKFLOW_NAME
Par exemple, pour supprimer tous les journaux d'activité du référentiel
monalisa/octocat
pour le workflow.github/workflows/ci.yaml
, vous devez exécuter./delete-logs.sh monalisa/octocat ci.yaml
.
Exemple de script
#!/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
Affichage des journaux avec GitHub CLI
Pour plus d’informations sur GitHub CLI, consultez « À propos de GitHub CLI ».
Pour afficher le journal d’un travail spécifique, utilisez la sous-commande run view
. Remplacez run-id
par l’ID de l’exécution pour laquelle vous voulez afficher des journaux. GitHub CLI retourne un menu interactif pour vous permettre de choisir un travail à partir de l’exécution. Si vous ne spécifiez pas run-id
, GitHub CLI retourne un menu interactif pour vous permettre de choisir une exécution récente, puis un autre menu interactif pour vous permettre de choisir un travail à partir de l’exécution.
gh run view RUN_ID --log
Vous pouvez également utiliser l’indicateur --job
pour spécifier un ID de travail. Remplacez job-id
par l’ID du travail pour lequel vous voulez afficher des journaux.
gh run view --job JOB_ID --log
Vous pouvez utiliser grep
pour effectuer une recherche dans le journal. Par exemple, cette commande retourne toutes les entrées de journal qui contiennent le mot error
.
gh run view --job JOB_ID --log | grep error
Pour filtrer les journaux selon les étapes ayant échoué, utilisez --log-failed
plutôt que --log
.
gh run view --job JOB_ID --log-failed