Skip to main content

Устранение неполадок предварительных сборок

Чтобы создавать codespace быстрее, можно использовать предварительные сборки. В этой статье приведены действия для устранения распространенных проблем с предварительными сборками.

Дополнительные сведения о предварительной сборке GitHub Codespaces см. в разделе Предварительная сборка сред codespace.

Проверка, было ли пространство кода создано из предварительной сборки

При создании пространства кода вы можете выбрать тип виртуальной машины, которую хотите использовать. Если предварительная сборка доступна для типа виртуальной машины, отображается рядом с ним " Prebuild ready.

Снимок экрана: список доступных типов компьютеров: 2, 4, 8, 16 и 32 ядра, все помечены как prebuild ready.

Если у вас есть параметр редактора GitHub Codespaces для параметра "Visual Studio Code для Интернета", страница "Настройка пространства кода" отобразит сообщение "Предварительно созданное пространство кода найдено", если используется предварительная сборка.

Снимок экрана: страница "Настройка пространства кода" с текстом : "Предварительно созданное пространство кода найдено. Скачивание образа".

Аналогично, если вы выбрали редактор "VS Code", то при создании нового пространства кода во встроенном терминале будет отображаться сообщение "Вы находитесь в предварительно созданном пространстве кода, определенном конфигурацией предварительной сборки для репозитория". Дополнительные сведения см. в разделе Настройка редактора по умолчанию для GitHub Codespaces.

После создания пространства кода можно проверить, было ли оно создано из предварительной сборки, выполнив в терминале следующую команду GitHub CLI:

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

Если пространство кода было создано с помощью предварительной сборки, эта команда возвращает true.

Если же у вас не установлен GitHub CLI (gh), можно использовать следующую команду, которая возвращает createFromPrebuild, если пространство кода было создано из предварительной сборки:

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

Проверка использования предварительной сборки

Вы можете проверить, использует ли репозиторий предварительные сборки на странице "Codespaces" параметров репозитория.

Вы можете проверить, сколько дискового пространства было занято предварительной сборкой в текущей период выставления счетов, просмотрив данные выставления счетов для вашей личной или корпоративной учетной записи. Вы также можете создать отчет об использовании, чтобы узнать, какие репозитории использовали предварительные сборки. Дополнительные сведения см. в разделе Просмотр сведений о потреблении GitHub Codespaces.

Иногда отсутствует метка "Предварительная сборка готова"

Иногда при создании пространства кода из ветви с поддержкой предварительной сборки метка " Prebuild Ready не отображается в диалоговом окне для выбора типа компьютера. Это означает, что в настоящее время предварительные сборки недоступны.

По умолчанию при каждой отправке в ветвь с поддержкой предварительной сборки предварительная сборка обновляется. Если отправка включает изменение конфигурации контейнера разработки, то в то время как обновление выполняется, метка " Prebuild Ready" удаляется из списка типов компьютеров. В это время вы по-прежнему можете экземпляры codespace без предварительной сборки. При необходимости вы можете сократить количество случаев недоступности предварительных сборок для репозитория, настроив обновление предварительной сборки только при внесении изменений в файлы конфигурации контейнера разработки или только по специальному расписанию. Дополнительные сведения см. в разделе Настройка предварительных сборок.

Если ваша ветвь специально не включена для предварительных сборок, она все равно может использовать преимущества предварительных сборок, если она была ответвлена ​от ветки с включенной поддержкой предварительных сборок. Однако если в вашей ветви конфигурация контейнера разработки изменена так, что она отличается от конфигурации в базовой ветви, предварительные сборки в вашей ветви больше не будут доступны.

Ниже приведены сведения о том, отображается ли метка " Prebuild Ready" не отображается для определенной ветви:

  • Проверьте, существует ли для этой ветви конфигурация предварительной сборки. Если вы не являетесь администратором репозитория, необходимо обратиться к одному из администраторов, чтобы проверить это.
  • Проверьте, включает ли конфигурация предварительной сборки ваш регион.
  • Проверьте, не было ли недавно отправлено изменение конфигурации контейнера разработки в ветвь с поддержкой предварительной сборки. В этом случае обычно необходимо подождать, пока не будет выполнен рабочий процесс предварительной сборки для завершения этой отправки. После этого предварительные сборки снова станут доступны.
  • Если изменения конфигурации не были внесены недавно, перейдите на вкладку "Действия " репозитория, щелкните Codespaces Prebuilds в списке рабочих процессов и убедитесь, что рабочий процесс предварительной сборки выполняется для ветви успешно. Если последние запуски рабочих процессов завершались неудачно, и один или несколько из этих неудачных запусков содержали изменения конфигурации контейнера разработки, то для соответствующей ветви предварительные сборки не будут доступны.

Не удается получить доступ к некоторым ресурсам в средах codespace, созданных с помощью предварительной сборки

Если в файле конфигурации предварительной сборки devcontainer.json указано, что требуются разрешения на доступ к другим репозиториям, администратор репозитория получит запрос на предоставление этих разрешений во время создания или обновления конфигурации предварительной сборки. Если администратор не предоставит все необходимые разрешения, в предварительной сборке и созданных из нее средах codespace могут возникнуть ошибки. Эта проблема сохраняется, даже если пользователь, создавший codespace на основе предварительной сборки, предоставил все необходимые разрешения при возникновении соответствующего запроса.

Устранение неполадок неудачных запусков рабочих процессов для предварительной сборки

Увеличение предела расходов GitHub Actions

Предварительные сборки создаются и обновляются с помощью GitHub Actions. Рабочие процессы предварительной сборки завершаются ошибкой, если вы использовали все ваши GitHub Actions минут и достигли предела расходов. Если это происходит, можно увеличить предел расходов GitHub Actions, чтобы позволить рабочим процессам выполняться. Дополнительные сведения см. в разделе Управление предельной суммой расходов для GitHub Actions.

Авторизация разрешений доступа

Если файл конфигурации предварительной сборки devcontainer.json был обновлен с указанием, что требуются разрешения на доступ к другим репозиториям, и администратор репозитория не получил запрос на предоставление таких разрешений, рабочий процесс предварительной сборки может завершиться сбоем. Попробуйте обновить конфигурацию предварительной сборки без внесения изменений. Если при нажатии кнопки Обновить появляется страница авторизации, проверьте допустимость необходимых разрешений и авторизуйте запрос. Дополнительные сведения см. в разделе [AUTOTITLE и Управление предварительными сборками](/codespaces/managing-your-codespaces/managing-repository-access-for-your-codespaces#setting-additional-repository-permissions).

Если запуски рабочих процессов для конфигурации предварительной сборки завершаются неудачно, вы можете временно отключить конфигурацию предварительной сборки, чтобы изучить ее. Дополнительные сведения см. в разделе Управление предварительными сборками.

Предотвращение использования устаревших предстроек

По умолчанию, если произошел сбой последнего рабочего процесса предварительной сборки, то для того же сочетания репозитория, ветви и devcontainer.json файла конфигурации будет использоваться для создания новых пространств кода. Это поведение называется предварительной оптимизацией.

Рекомендуется поддерживать функцию предварительной оптимизации, так как она помогает быстро создавать пространства кода, если обновленная предварительная сборка недоступна. Однако в качестве администратора репозитория можно отключить оптимизацию предварительной сборки, если возникают проблемы с предварительно созданными пространствами кода, которые находятся за текущим состоянием ветви. Если вы отключите оптимизацию предварительной сборки, пространства кода для соответствующего сочетания репозитория, ветви и devcontainer.json файла будут созданы без предварительной сборки, если последний рабочий процесс предварительной сборки завершился сбоем или запущен в данный момент.

  1. На GitHubперейдите на главную страницу репозитория.

  2. Под именем репозитория щелкните Settings. Если вкладка "Параметры" не отображается, выберите раскрывающееся меню и нажмите кнопку "Параметры".

    Снимок экрана: заголовок репозитория с вкладками. Вкладка "Параметры" выделена темно-оранжевым контуром.

  3. В разделе "Код и автоматизация" боковой панели щелкните Codespaces.

  4. Справа от затронутой конфигурации предварительной сборки выберите многоточие (...), а затем нажмите кнопку "Изменить".

    Снимок экрана: раскрывающийся список параметров предварительной сборки с выделенным элементом "Изменить".

  5. Прокрутите страницу "Изменить конфигурацию" и нажмите кнопку "Показать дополнительные параметры".

    Снимок экрана: нижняя часть страницы конфигурации предварительной сборки. Ссылка "Показать расширенные параметры" выделена темно-оранжевым контуром.

  6. Если вы уверены, что вы хотите отключить параметр по умолчанию, выберите "Отключить оптимизацию предварительной сборки".

    Снимок экрана: параметры "Дополнительные параметры". Установлен флажок "Отключить оптимизацию предварительной сборки". В этом разделе находится кнопка "Обновить".

  7. Чтобы сохранить изменение, нажмите кнопку "Обновить".

Дополнительные материалы