Skip to main content

对预构建进行故障排除

可以使用预生成来加快 codespace 的创建速度。 本文提供有关预生成的常见问题的故障排除步骤。

有关 GitHub Codespaces 预生成的详细信息,请参阅 AUTOTITLE。

检查是否从预生成创建 codespace?

创建 codespace 时,可选择要使用的虚拟机类型。 如果预构建可用于该类型的虚拟机,其旁边会显示“ Prebuild ready”。

可用机器类型的列表的屏幕截图:2 核、4 核、8 核、16 核和 32 核,全部标记为“预建就绪”。

如果将 GitHub Codespaces 编辑器首选项设置为“Visual Studio Code for Web”,则“设置 codespace”页面将显示“找到预生成 codespace”消息(如果正在使用预生成)。

“设置您的代码空间”页的屏幕截图,包含以下文本:“找到预生成的代码空间。” 下载图像”。

同样,如果编辑器首选项为“VS Code”,则在创建新 codespace 时,集成终端将包含“你位于存储库预生成配置定义的预生成 codespace 上”消息。 有关详细信息,请参阅“AUTOTITLE”。

创建 codespace 后,可以通过在终端中运行以下 GitHub CLI 命令来检查它是否是从预生成创建的:

Shell
gh api /user/codespaces/$CODESPACE_NAME --jq .prebuild

如果 codespace 是使用预生成创建的,则返回 。

或者,如果未安装 GitHub CLI (),您可以使用以下命令。如果 codespace 是从预生成创建的,该命令将返回:

Shell
cat /workspaces/.codespaces/shared/environment-variables.json | jq '.ACTION_NAME'

检查预生成使用情况

可以在存储库设置的“Codespaces”页中检查存储库是否正在使用预生成。

可通过查看个人或组织帐户的计费数据,检查当前计费周期中的预生成占用的存储空间。 还可以生成使用情况报告,以查看哪些存储库一直在使用预生成。 有关详细信息,请参阅“AUTOTITLE”。

有时会丢失“预构建准备就绪”标签

你可能会注意到,有时,当从支持预生成的分支创建新的 codespace 时,选择计算机类型的对话框中不会显示“ 预生成已准备”标签。 这意味着预生成当前不可用。

默认情况下,每次推送到启用了预构建的分支时,预构建都会更新。 如果推送涉及对开发容器配置的更改,则在进行更新时,将从计算机类型列表中移除“ Prebuild Ready”标签。 在此期间,仍然可以在没有预生成环境的情况下创建代码空间。 如果需要,可将预生成设置为仅在对开发容器配置文件进行更改时更新,或仅按自定义计划更新,从而减少预生成不可用于存储库的情况。 有关详细信息,请参阅“AUTOTITLE”。

如果你的分支未明确启用预生成,但它是从已启用预生成的分支派生出来的,它仍然可能会从中受益。 但是,如果分支上的开发容器配置已更改,变得与基础分支上的配置不同,则分支上将不再提供预生成。

如果特定分支未显示“ Prebuild Ready”标签,请检查以下事项:

  • 确认此分支存在预构建配置。 如果你不是存储库管理员,则需要联系其中一个管理员来确认这一点。
  • 确认预生成配置包括你的区域。
  • 检查最近是否已将开发容器的配置更改推送到已启用预构建的分支。 如果是这样,则通常必须等到此推送的预生成工作流运行完成,才能再次使用预生成。
  • 如果最近未进行任何配置更改,请转到存储库的“Actions”选项卡,单击工作流列表中的“ Codespaces Prebuilds”,并检查分支的预生成工作流运行是否成功。 如果工作流的最新运行失败,并且其中一个或多个失败的运行包含对开发容器配置的更改,则关联的分支将没有可用的预生成。

在使用预生成创建的 codespace 中无法访问某些资源

如果预生成配置的 配置文件指定需要其他存储库的访问权限,则系统会提示存储库管理员在创建或更新预生成配置时授权这些权限。 如果管理员未授予所有请求的权限,预生成过程以及从此预生成创建的代码空间中可能会出现问题。 即使用户在收到提示时授予了所有权限,但基于此预生成创建代码空间的情况仍然如此。

失败的预生成工作流运行故障排除

提高 GitHub Actions 支出限制

预生成是使用 GitHub Actions 创建和更新的。 如果用完了所有 GitHub Actions 分钟数并达到了支出限制,你的预生成工作流将会失败。 如果发生这种情况,可以增加 GitHub Actions 支出限制,以允许工作流运行。 有关详细信息,请参阅“AUTOTITLE”。

授予访问权限

如果更新了预生成配置的 配置文件以指定需要其他存储库的访问权限,并且系统未提示存储库管理员为预生成配置授权这些权限,则预生成工作流可能会失败。 尝试在不进行任何更改的情况下更新预生成配置。 如果单击“更新”显示了授权页面,请检查请求的权限是否合适,如果合适,请授权该请求。 有关详细信息,请参阅 AUTOTITLE 和 AUTOTITLE。

如果预生成配置的工作流运行失败,则可以在调查时暂时禁用预生成配置。 有关详细信息,请参阅“AUTOTITLE”。

防止使用过时的预构建

默认情况下,如果最新的预生成工作流失败,则会使用之前对于相同存储库、分支和配置文件组合的预生成来创建新的代码空间。 此行为称为预生成优化。

建议启用预构建优化,因为它有助于确保在最新预构建不可用时,仍可快速创建开发环境。 但如果遇到预生成 codespace 落后于分支当前状态的问题,存储库管理员可以禁用预生成优化。 如果禁用预生成优化,那么对于相关的存储库、分支和文件组合,如果最新的预生成工作流失败或仍在运行,codespaces 将在没有预生成的情况下被创建。

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

  2. 在仓库名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

  3. 在边栏的“Code & automation”部分,单击“ Codespaces”****。

  4. 在受影响的预生成配置右侧,选择省略号 (…),然后单击“编辑” 。

    预生成选项下拉列表的屏幕截图,其中突出显示了“编辑”。

  5. 滚动到“编辑配置”页底部,然后单击“显示高级选项”。

    预生成配置页底部的屏幕截图。 “显示高级选项”链接以深橙色轮廓突出显示。

  6. 如果确定要禁用默认设置,请选择“禁用预生成优化”。

    “高级选项”设置的屏幕截图。 已选中标有“禁用预生成优化”的复选框。 下面是“更新”按钮。

  7. 若要保存更改,请单击“更新”。

其他阅读材料

  • 自动标题
  • 自动标题