Skip to main content

Using workflow run logs

Vous pouvez afficher, rechercher et télécharger les journaux pour chaque travail dans une exécution de workflow.

Remarque : Les exécuteurs hébergés sur GitHub ne sont pas pris en charge sur GitHub Enterprise Server. Vous pouvez voir plus d’informations sur le support futur planifié dans la GitHub public roadmap.

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.

  1. Sur GitHub, accédez à la page principale du référentiel.

  2. Sous le nom de votre dépôt, cliquez sur Actions.

    Capture d’écran des onglets du référentiel « github/docs ». L’onglet « Actions » est mis en surbrillance avec un encadré orange.

  3. Dans la barre latérale gauche, cliquez sur le workflow que vous souhaitez afficher.

    Capture d'écran de la barre latérale gauche de l'onglet « Actions », avec un workflow « CodeQL » indiqué en orange foncé.

  4. 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.

  5. Sous Travaux ou dans le graphe de visualisation, cliquez sur le travail que vous souhaitez afficher.

  6. Toutes les étapes qui ont échoué sont automatiquement développées pour afficher les résultats.

  7. 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.

    Capture d’écran des journaux d’un travail. Les journaux d’une étape ayant échoué sont développés et un numéro de ligne est mis en évidence avec un encadré orange.

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.

  1. Sur GitHub, accédez à la page principale du référentiel.

  2. Sous le nom de votre dépôt, cliquez sur Actions.

    Capture d’écran des onglets du référentiel « github/docs ». L’onglet « Actions » est mis en surbrillance avec un encadré orange.

  3. Dans la barre latérale gauche, cliquez sur le workflow que vous souhaitez afficher.

    Capture d'écran de la barre latérale gauche de l'onglet « Actions », avec un workflow « CodeQL » indiqué en orange foncé.

  4. 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.

  5. Sous Travaux ou dans le graphe de visualisation, cliquez sur le travail que vous souhaitez afficher.

  6. 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.

  1. Sur GitHub, accédez à la page principale du référentiel.

  2. Sous le nom de votre dépôt, cliquez sur Actions.

    Capture d’écran des onglets du référentiel « github/docs ». L’onglet « Actions » est mis en surbrillance avec un encadré orange.

  3. Dans la barre latérale gauche, cliquez sur le workflow que vous souhaitez afficher.

    Capture d'écran de la barre latérale gauche de l'onglet « Actions », avec un workflow « CodeQL » indiqué en orange foncé.

  4. 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.

  5. Sous Travaux ou dans le graphe de visualisation, cliquez sur le travail que vous souhaitez afficher.

  6. Dans le coin supérieur droit du journal, sélectionnez le menu déroulant et cliquez sur Télécharger l’archive du journal.

    Capture d’écran du journal d’un travail. Dans l’en-tête, une icône d’engrenage est encadrée en orange foncé.

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

  1. Sur GitHub, accédez à la page principale du référentiel.

  2. Sous le nom de votre dépôt, cliquez sur Actions.

    Capture d’écran des onglets du référentiel « github/docs ». L’onglet « Actions » est mis en surbrillance avec un encadré orange.

  3. Dans la barre latérale gauche, cliquez sur le workflow que vous souhaitez afficher.

    Capture d'écran de la barre latérale gauche de l'onglet « Actions », avec un workflow « CodeQL » indiqué en orange foncé.

  4. 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.

  5. Dans le coin supérieur droit, sélectionnez le menu déroulant et cliquez sur Supprimer tous les journaux.

    Capture d’écran de la page d’une exécution de workflow. Dans le coin supérieur droit, un bouton représenté par une icône de points de suspension est encadré en orange foncé.

  6. 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 :

  1. Copiez l’exemple de code et enregistrez-le dans un fichier appelé delete-logs.sh.

  2. Octroyez les autorisations d’exécution avec chmod +x delete-logs.sh.

  3. Exécutez la commande suivante, où REPOSITORY_NAME correspond au nom de votre référentiel et WORKFLOW_NAME au nom de fichier de votre workflow.

    Shell
    ./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

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

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