跳至主要内容

重新运行工作流和作业

您可以在工作流运行的初始运行后 30 天内重新运行工作流运行、工作流运行中的所有失败作业或工作流运行中的特定作业。

谁可以使用此功能?

拥有仓库写入权限的人员可以重新运行仓库中的工作流。

关于重新运行工作流和作业

重新运行工作流或工作流中的作业使用与触发工作流运行的原始事件相同的 GITHUB_SHA(提交 SHA)和 GITHUB_REF(Git ref)。工作流将使用最初触发工作流的执行者的权限,而不是启动重新运行的执行者的权限。您可以在初始运行后 30 天内重新运行工作流或工作流中的作业。工作流的日志超过保留限制后,您无法重新运行工作流中的作业。有关更多信息,请参阅“使用限制、计费和管理”。重新运行工作流或工作流中的作业时,您可以为重新运行启用调试日志记录。这将为重新运行启用运行器诊断日志记录和步骤调试日志记录。有关调试日志记录的更多信息,请参阅“启用调试日志记录”。

重新运行工作流中的所有作业

  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. 在工作流的右上角,重新运行作业。

    • 如果任何作业失败,请选择 重新运行作业下拉菜单,然后单击 重新运行所有作业

    • 如果没有任何作业失败,请单击 重新运行所有作业

  6. 可选地,要为重新运行启用运行器诊断日志记录和步骤调试日志记录,请选择 启用调试日志记录

  7. 单击 重新运行作业

要详细了解 GitHub CLI,请参阅 "关于 GitHub CLI”。

要重新运行失败的工作流运行,请使用 run rerun 子命令。将 run-id 替换为要重新运行的失败运行的 ID。如果您没有指定 run-id,GitHub CLI 会返回一个交互式菜单,供您选择最近的失败运行。

gh run rerun RUN_ID

要为重新运行启用运行程序诊断日志记录和步骤调试日志记录,请使用 --debug 标志。

gh run rerun RUN_ID --debug

要查看工作流运行的进度,请使用 run watch 子命令并从交互式列表中选择运行。

gh run watch

重新运行工作流中的失败作业

如果工作流运行中的任何作业失败,您可以仅重新运行失败的作业。当您重新运行工作流中的失败作业时,将为所有失败作业及其依赖项启动新的工作流运行。先前工作流运行中任何成功作业的任何输出都将用于重新运行。初始运行中创建的任何工件都将在重新运行中可用。先前运行中通过的任何部署保护规则将在重新运行中自动通过。

  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. 在工作流的右上角,选择 重新运行作业下拉菜单,然后单击 重新运行失败作业

  6. 可选地,要为重新运行启用运行器诊断日志记录和步骤调试日志记录,请选择 启用调试日志记录

  7. 单击 重新运行作业

要重新运行工作流运行中的失败作业,请使用 run rerun 子命令,并使用 --failed 标志。将 run-id 替换为要为其重新运行失败作业的运行的 ID。如果您没有指定 run-id,GitHub CLI 会返回一个交互式菜单,供您选择最近的失败运行。

gh run rerun RUN_ID --failed

要为重新运行启用运行程序诊断日志记录和步骤调试日志记录,请使用 --debug 标志。

gh run rerun RUN_ID --failed --debug

重新运行工作流中的特定作业

当您重新运行工作流中的特定作业时,将为该作业及其任何依赖项启动新的工作流运行。先前工作流运行中任何其他作业的任何输出都将用于重新运行。初始运行中创建的任何工件都将在重新运行中可用。先前运行中通过的任何部署保护规则将在重新运行中自动通过。

  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. 在左侧边栏的“作业”部分,在要重新运行的作业旁边,单击 .

  6. 可选地,要为重新运行启用运行器诊断日志记录和步骤调试日志记录,请选择 启用调试日志记录

  7. 单击 重新运行作业

要重新运行工作流运行中的特定作业,请使用 run rerun 子命令,并使用 --job 标志。将 job-id 替换为要重新运行的作业的 ID。

gh run rerun --job JOB_ID

要为重新运行启用运行程序诊断日志记录和步骤调试日志记录,请使用 --debug 标志。

gh run rerun --job JOB_ID --debug

使用可重用工作流重新运行工作流和作业

可以使用 SHA、发布标签或分支名称引用来自公共存储库的可重用工作流。有关更多信息,请参阅“重用工作流”。

当您重新运行使用可重用工作流的工作流并且引用不是 SHA 时,需要注意一些行为。

  • 重新运行工作流中的所有作业将使用指定引用中的可重用工作流。有关重新运行工作流中所有作业的更多信息,请参阅“重新运行工作流和作业”。
  • 重新运行工作流中失败的作业或特定作业将使用第一次尝试的相同提交 SHA 中的可重用工作流。有关重新运行工作流中失败的作业的更多信息,请参阅“重新运行工作流和作业”。有关重新运行工作流中特定作业的更多信息,请参阅“重新运行工作流和作业”。

查看以前的工作流运行

您可以查看以前尝试运行工作流的结果。您也可以使用 API 查看以前的工作流运行。有关更多信息,请参阅“工作流运行的 REST API 端点”。

  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. 在运行名称的右侧,选择**最新**下拉菜单并单击以前的运行尝试。