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
-
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
queued
ouin progress
que vous souhaitez annuler. -
Dans le coin supérieur droit du workflow, cliquez sur Annuler le workflow.
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.
- 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 valeurtrue
, le travail n’est pas annulé. Par exemple, la conditionif: always()
prend la valeur true et le travail continue à s’exécuter. En l’absence de condition, c’est l’équivalent de la conditionif: success()
, qui s’exécute uniquement si l’étape précédente s’est terminée avec succès. - 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.
- 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 valeurtrue
, l’étape continue à s’exécuter. Vous pouvez utiliser l’expressioncancelled
pour appliquer une vérification d’état surcancelled()
. Pour plus d’informations, consultez « Évaluer les expressions dans les workflows et les actions ». - 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 etbash/cmd/pwd
lors de l’utilisation derun
dans une étape). Si le processus ne se termine pas dans les 7500 ms, l’exécuteur envoieSIGTERM/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. - 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.