Skip to main content

重新运行工作流程和作业

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

谁可以使用此功能?

People with write permissions to a repository can re-run workflows in the repository.

Tool navigation

Note

GitHub Enterprise Server 目前不支持 GitHub 托管的运行器。 可以在 GitHub public roadmap 上查看有关未来支持计划的更多信息。

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

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

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

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

  2. 在存储库名称下,单击 “操作”。

    “github/docs”存储库的选项卡的屏幕截图。 “操作”选项卡以橙色边框突出显示。

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

    “操作”选项卡的左侧边栏的屏幕截图。工作流“CodeQL”以深橙色标出。

  4. 在工作流运行列表中,单击运行的名称以查看工作流运行摘要。

  5. 在工作流的右上角,重新运行作业。

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

    • 如果没有作业失败,请单击“重新运行所有作业”。

  6. (可选)若要为重新运行启用运行程序诊断日志记录和步骤调试日志记录,请选择“启用调试日志记录”。

  7. 单击“重新运行作业****”。

Note

若要详细了解 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 上,导航到存储库的主页面。

  2. 在存储库名称下,单击 “操作”。

    “github/docs”存储库的选项卡的屏幕截图。 “操作”选项卡以橙色边框突出显示。

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

    “操作”选项卡的左侧边栏的屏幕截图。工作流“CodeQL”以深橙色标出。

  4. 在工作流运行列表中,单击运行的名称以查看工作流运行摘要。

  5. 在工作流的右上角,选择“ 重新运行作业”下拉菜单,然后单击“重新运行失败的作业”。

  6. (可选)若要为重新运行启用运行程序诊断日志记录和步骤调试日志记录,请选择“启用调试日志记录”。

  7. 单击“重新运行作业****”。

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

gh run rerun RUN_ID --failed

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

gh run rerun RUN_ID --failed --debug

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

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

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

  2. 在存储库名称下,单击 “操作”。

    “github/docs”存储库的选项卡的屏幕截图。 “操作”选项卡以橙色边框突出显示。

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

    “操作”选项卡的左侧边栏的屏幕截图。工作流“CodeQL”以深橙色标出。

  4. 在工作流运行列表中,单击运行的名称以查看工作流运行摘要。

  5. 在左侧边栏的“作业”部分下,在要重新运行的作业旁边,单击

  6. (可选)若要为重新运行启用运行程序诊断日志记录和步骤调试日志记录,请选择“启用调试日志记录”。

  7. 单击“重新运行作业****”。

若要在工作流运行中重新运行特定作业,请使用带有 --job 标志的 run rerun 子命令。 将 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 上,导航到存储库的主页面。

  2. 在存储库名称下,单击 “操作”。

    “github/docs”存储库的选项卡的屏幕截图。 “操作”选项卡以橙色边框突出显示。

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

    “操作”选项卡的左侧边栏的屏幕截图。工作流“CodeQL”以深橙色标出。

  4. 在工作流运行列表中,单击运行的名称以查看工作流运行摘要。

  5. 在运行名称的右侧,选择“最新”下拉菜单,然后单击上一次运行尝试。