Skip to main content

Ré-exécution de workflows et de travaux

Vous pouvez réexécuter une exécution de workflow, tous les travaux ayant échoué dans une exécution de workflow ou des travaux spécifiques dans une exécution de workflow jusqu’à 30 jours après son exécution initiale.

Qui peut utiliser cette fonctionnalité ?

People with write permissions to a repository can re-run workflows in the repository.

Tool navigation

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.

À propos de la ré-exécution de workflows et de travaux

La ré-exécution d’un workflow ou de travaux dans un workflow utilise les mêmes algorithmes GITHUB_SHA (algorithme SHA de validation) et GITHUB_REF (référence Git) de l’événement d’origine qui a déclenché l’exécution du workflow. Le workflow utilise les privilèges de l’acteur qui a initialement déclenché le workflow, et non les privilèges de l’acteur qui a initié la réexécutation. Vous pouvez réexécuter un workflow ou des travaux dans un workflow pendant jusqu’à 30 jours après l’exécution initiale. Vous ne pouvez pas réexécuter des travaux dans un workflow une fois que ses journaux ont passé leurs limites de rétention. Pour plus d’informations, consultez « Limites d’utilisation, facturation et administration ». Lorsque vous réexécutez un workflow ou des travaux dans un workflow, vous pouvez activer la journalisation du débogage pour la réexécution. Cela permet d’activer la journalisation des diagnostics de l’exécuteur et la journalisation du débogage par étape pour la réexécution. Pour plus d’informations sur la journalisation du débogage, consultez « Enabling debug logging ».

Ré-exécution de tous les travaux dans un workflow

  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 du workflow, réexécutez les travaux.

    • Si des travaux ont échoué, sélectionnez le menu déroulant Réexécuter les travaux, puis cliquez sur Réexécuter tous les travaux.

    • Si aucun travail n’a échoué, cliquez sur Réexécuter tous les travaux.

  6. Si vous le souhaitez, pour activer la journalisation des diagnostics d’exécution et la journalisation des étapes de débogage pour la réexécution, sélectionnez Activer la journalisation du débogage.

  7. Cliquez sur Réexécuter les travaux.

Pour plus d’informations sur GitHub CLI, consultez « À propos de GitHub CLI ».

Pour ré-exécuter une exécution de workflow ayant échoué, utilisez la sous-commande run rerun. Remplacez run-id par l’ID de l’exécution ayant échoué que vous voulez ré-exécuter. Si vous ne spécifiez pas de run-id, GitHub CLI retourne un menu interactif pour vous permettre de choisir une exécution échouée récente.

gh run rerun RUN_ID

Pour activer la journalisation des diagnostics de l’exécuteur et la journalisation du débogage par étape pour la réexécution, utilisez l’indicateur --debug.

gh run rerun RUN_ID --debug

Pour afficher la progression de l’exécution du workflow, utilisez la sous-commande run watch et sélectionnez l’exécution dans la liste interactive.

gh run watch

Ré-exécution de travaux ayant échoué dans un workflow

Si des travaux d’une exécution de workflow ont échoué, vous pouvez ré-exécuter uniquement les travaux qui ont échoué. Quand vous ré-exécutez les travaux qui ont échoué dans un workflow, une nouvelle exécution de workflow démarre pour tous les travaux ayant échoué et leurs dépendants. Toutes les sorties pour les travaux réussis dans l’exécution de workflow précédente seront utilisées pour la ré-exécution. Tous les artefacts créés dans l’exécution initiale seront disponibles dans la ré-exécution. Toutes les règles de protection du déploiement qui ont été passées lors de l’exécution précédente passeront automatiquement dans la ré-exécution.

  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 du workflow, sélectionnez le menu déroulant Réexécuter les travaux, puis cliquez sur Réexécuter les travaux ayant échoué.

  6. Si vous le souhaitez, pour activer la journalisation des diagnostics d’exécution et la journalisation des étapes de débogage pour la réexécution, sélectionnez Activer la journalisation du débogage.

  7. Cliquez sur Réexécuter les travaux.

Pour ré-exécuter les travaux ayant échoué dans une exécution de workflow, utilisez la sous-commande run rerun avec l’indicateur --failed. Remplacez run-id par l’ID de l’exécution pour laquelle vous souhaitez ré-exécuter les travaux ayant échoué. Si vous ne spécifiez pas de run-id, GitHub CLI retourne un menu interactif pour vous permettre de choisir une exécution échouée récente.

gh run rerun RUN_ID --failed

Pour activer la journalisation des diagnostics de l’exécuteur et la journalisation du débogage par étape pour la réexécution, utilisez l’indicateur --debug.

gh run rerun RUN_ID --failed --debug

Ré-exécution d’un travail spécifique dans un workflow

Quand vous ré-exécutez un travail spécifique dans un workflow, une nouvelle exécution de workflow démarre pour le travail et tous les dépendants. Toutes les sorties pour les autres travaux dans l’exécution de workflow précédente seront utilisées pour la ré-exécution. Tous les artefacts créés dans l’exécution initiale seront disponibles dans la ré-exécution. Toutes les règles de protection du déploiement qui ont été passées lors de l’exécution précédente passeront automatiquement dans la ré-exécution.

  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 la section « Tâches » de la barre latérale gauche, en regard de la tâche que vous souhaitez ré-exécuter, cliquez sur .

  6. Si vous le souhaitez, pour activer la journalisation des diagnostics d’exécution et la journalisation des étapes de débogage pour la réexécution, sélectionnez Activer la journalisation du débogage.

  7. Cliquez sur Réexécuter les travaux.

Pour ré-exécuter un travail spécifique dans une exécution de workflow, utilisez la sous-commande run rerun avec l’indicateur --job. Remplacez job-id par l’ID du travail que vous voulez ré-exécuter.

gh run rerun --job JOB_ID

Pour activer la journalisation des diagnostics de l’exécuteur et la journalisation du débogage par étape pour la réexécution, utilisez l’indicateur --debug.

gh run rerun --job JOB_ID --debug

Réexécution de workflows et de travaux avec des workflows réutilisables

Les workflows réutilisables provenant de référentiels publics peuvent être référencés à l’aide d’un SHA, d’une étiquette de mise en production ou d’un nom de branche. Pour plus d’informations, consultez « Réutilisation des workflows ».

Lorsque vous réexécutez un workflow qui utilise un workflow réutilisable et que la référence n’est pas un SHA, il existe des comportements à prendre en compte :

  • La réexécution de tous les travaux dans un workflow utilise le workflow réutilisable à partir de la référence spécifiée. Pour plus d’informations sur la réexécution de tous les travaux d’un workflow, consultez « Ré-exécution de workflows et de travaux ».
  • La réexécution des travaux ayant échoué ou d’un travail spécifique dans un workflow utilise le workflow réutilisable à partir du même SHA de validation que lors de la première tentative. Pour plus d’informations sur la réexécution des travaux en échec d’un workflow, consultez « Ré-exécution de workflows et de travaux ». Pour plus d’informations sur la réexécution d’un travail spécifique d’un workflow, consultez « Ré-exécution de workflows et de travaux ».

Examen des exécutions de workflow précédentes

Vous pouvez afficher les résultats de vos tentatives précédentes lors de l’exécution d’un workflow. Vous pouvez également afficher les exécutions de workflow précédentes à l’aide de l’API. Pour plus d’informations, consultez « Points de terminaison d’API REST pour les workflows runs ».

  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. À droite du nom de l'exécution, sélectionnez le menu déroulant Plus récent, puis cliquez sur une tentative d'exécution précédente.