Skip to main content

Enterprise Server 3.21 ist derzeit als Release Candidate verfügbar.

Referenz zum Workflowabbruch

Hier finden Sie Informationen zu den Schritten GitHub zum Abbrechen einer Workflowausführung.

Beim Abbrechen einer Workflowausführung führst du möglicherweise andere Software aus, die im Zusammenhang mit der Workflowausführung stehende Ressourcen verwendet. Um Ihnen beim Freigeben von Ressourcen im Zusammenhang mit der Workflowausführung zu helfen, kann es hilfreich sein, die Schritte GitHub zu verstehen, die ausgeführt werden, um eine Workflowausführung abzubrechen.

  1. Um die Ausführung des Workflows abzubrechen, bewertet der Server die if-Bedingungen für alle derzeit ausgeführten Aufträge neu. Wenn die Bedingung als true ausgewertet wird, wird der Auftrag nicht abgebrochen. Wenn z. B. die Bedingung if: always() als „true“ ausgewertet wird, wird der Auftrag weiterhin ausgeführt. Wenn keine Bedingung vorhanden ist, entspricht dies der Bedingung if: success(), d. h. die Ausführung findet nur bei erfolgreichem Abschluss des vorherigen Schritts statt.
  2. Für Aufträge, die abgebrochen werden müssen, sendet der Server eine Abbruchnachricht an alle Runnercomputer mit Aufträgen, die abgebrochen werden müssen.
  3. Für Aufträge, die weiterhin ausgeführt werden, bewertet der Server die if-Bedingungen für die nicht abgeschlossenen Schritte neu. Wenn die Bedingung als true ausgewertet wird, wird der Schritt weiterhin ausgeführt. Sie können den cancelled-Ausdruck verwenden, um eine Statusüberprüfung von cancelled() durchzuführen. Weitere Informationen finden Sie unter Auswerten von Ausdrücken in Workflows und Aktionen.
  4. Für Schritte, die abgebrochen werden müssen, sendet der Runnercomputer SIGINT/Ctrl-C an den Einstiegsprozess des Schritts (node für JavaScript-Aktionen, docker für Containeraktionen und bash/cmd/pwd bei Verwendung von run in einem Schritt). Wenn der Prozess innerhalb von 7.500 ms nicht beendet wird, sendet der Runner SIGTERM/Ctrl-Break an den Prozess. Warte dann 2.500 ms, bis der Prozess beendet wird. Wenn der Prozess noch ausgeführt wird, beendet der Runner die Prozessstruktur.
  5. Nach Ablauf der 5-minütigen Zeitüberschreitung für den Abbruch beendet der Server zwangsweise alle Aufträge und Schritte, die zum Abbruch markiert sind und zu diesem Zeitpunkt noch ausgeführt werden.