Skip to main content

Cette version de GitHub Enterprise a été abandonnée le 2023-01-18. Aucune publication de correctifs n’est effectuée, même pour les problèmes de sécurité critiques. Pour de meilleures performances, une sécurité améliorée et de nouvelles fonctionnalités, effectuez une mise à niveau vers la dernière version de GitHub Enterprise. Pour obtenir de l’aide sur la mise à niveau, contactez le support GitHub Enterprise.

Annulation d’un workflow

Vous pouvez annuler une exécution de workflow. Quand vous annulez l’exécution d’un workflow, GitHub annule tous les travaux et toutes les étapes qui font partie de ce 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.

L’accès en écriture au dépôt est requis pour effectuer ces étapes.

Annulation d’une exécution de workflow

  1. Dans your GitHub Enterprise Server instance, accédez à la page principale du dépôt. 1. Sous le nom de votre référentiel, cliquez sur Actions. Onglet Actions dans le volet de navigation du dépôt principal 1. Dans la barre latérale gauche, cliquez sur le workflow que vous souhaitez afficher. Liste de workflows dans la barre latérale à gauche
  2. Dans la liste des exécutions de workflow, cliquez sur le nom de l’exécution queued ou in progress que vous souhaitez annuler. Nom de l’exécution de workflow
  3. Dans le coin supérieur droit du workflow, cliquez sur Annuler le workflow. Bouton Annuler la suite de vérification

Les étapes que GitHub effectue pour annuler une exécution de workflow

Lors de l’annulation de l’exécution du workflow, vous pouvez exécuter d’autres logiciels qui utilisent des ressources liées à l’exécution du workflow. Pour vous aider à libérer des ressources liées à l’exécution du workflow, cela peut vous aider à comprendre les étapes que GitHub effectue pour annuler une exécution de workflow.

  1. Pour annuler l’exécution du workflow, le serveur réévalue les conditions if de tous les travaux en cours d’exécution. Si la condition prend la valeur true, le travail n’est pas annulé. Par exemple, la condition if: always() prend la valeur true et le travail continue à s’exécuter. En l’absence de condition, c’est l’équivalent de la condition if: success(), qui s’exécute uniquement si l’étape précédente s’est terminée avec succès.
  2. Pour les travaux qui doivent être annulés, le serveur envoie un message d’annulation à toutes les machines de l’exécuteur avec les travaux qui doivent être annulés.
  3. Pour les travaux qui continuent à s’exécuter, le serveur réévalue les conditions des étapes non terminées if. Si la condition prend la valeur true, l’étape continue à s’exécuter.
  4. Pour les étapes qui doivent être annulées, l’ordinateur de l’exécuteur envoie SIGINT/Ctrl-C au processus d’entrée de l’étape (node pour l’action JavaScript, docker pour l’action conteneur et bash/cmd/pwd lors de l’utilisation de run dans une étape). Si le processus ne se termine pas dans les 7500 ms, l’exécuteur envoie SIGTERM/Ctrl-Break au processus, puis attend 2500 ms que le processus se termine. Si le processus est toujours en cours d’exécution, l’exécuteur tue l’arborescence du processus.
  5. Après la période d’expiration d’annulation de 5 minutes, le serveur force l’arrêt de tous les travaux et étapes qui ne se terminent pas ou ne parviennent pas à terminer le processus d’annulation.