跳至主要内容

取消工作流

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

执行这些步骤需要对存储库具有写访问权限。

取消工作流运行

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

  2. 在存储库名称下方,单击 操作.

    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. 从工作流运行列表中,单击要取消的已排队进行中运行的名称。

  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. 对于需要取消的步骤,运行器计算机将向步骤的入口进程(javascript 操作的node、容器操作的docker以及在步骤中使用run时的bash/cmd/pwd)发送SIGINT/Ctrl-C。如果进程在 7500 毫秒内没有退出,运行器将向该进程发送SIGTERM/Ctrl-Break,然后等待 2500 毫秒以让进程退出。如果进程仍在运行,运行器将终止进程树。
  5. 在 5 分钟取消超时期后,服务器将强制终止所有未完成运行或未能完成取消过程的作业和步骤。