跳到主要内容

取消工作流

您可以取消正在进行的工作流运行。取消工作流运行时,GitHub 会取消该工作流的所有作业和步骤。

执行这些步骤需要对存储库的写入权限。

取消工作流运行

  1. 在 GitHub 上,导航到存储库的主页。

  2. 在您的存储库名称下,单击 Actions.

    Screenshot of the tabs for the "github/docs" repository. The "Actions" tab is highlighted with an orange outline.

  3. 在左侧边栏中,单击您要查看的工作流。

    Screenshot of the left sidebar of the "Actions" tab. A workflow, "CodeQL," is outlined in dark orange.

  4. 从工作流运行列表中,单击要取消的queuedin progress运行的名称。

  5. 在工作流的右上角,单击**取消工作流**。

    Screenshot showing the summary for a workflow that is currently running. The "Cancel workflow" button is highlighted with a dark orange outline.

GitHub 取消工作流运行的步骤

取消工作流运行时,您可能正在运行其他使用与工作流运行相关的资源的软件。为了帮助您释放与工作流运行相关的资源,了解 GitHub 执行以取消工作流运行的步骤可能会有所帮助。

  1. 为了取消工作流运行,服务器会重新评估所有当前正在运行的作业的if条件。如果条件评估为true,则作业不会被取消。例如,条件if: always()将评估为 true,并且作业将继续运行。如果没有条件,则等效于条件if: success(),该条件仅在先前步骤成功完成时才运行。
  2. 对于需要取消的任务,服务器会向所有需要取消任务的运行器机器发送取消消息。
  3. 对于继续运行的任务,服务器会重新评估未完成步骤的if条件。如果条件评估结果为true,则步骤继续运行。您可以使用cancelled表达式来应用cancelled()的状态检查。更多信息请参见“在工作流和操作中评估表达式”。
  4. 对于需要取消的步骤,运行器机器会向步骤的入口进程发送SIGINT/Ctrl-C(对于javascript action为node,对于容器action为docker,对于步骤中使用run时为bash/cmd/pwd)。如果进程在7500毫秒内没有退出,运行器将向进程发送SIGTERM/Ctrl-Break,然后等待2500毫秒以查看进程是否退出。如果进程仍在运行,运行器将终止该进程树。
  5. 在5分钟的取消超时期限后,服务器将强制终止所有未完成运行或未能完成取消过程的任务和步骤。