Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы, возможно, еще выполняется. Актуальные сведения см. в документации на английском языке.

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

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

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

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

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

Список доступных типов виртуальных машин

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

Сообщение "Найдено предварительно созданное пространство кода"

Аналогично, если вы выбрали редактор "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'

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

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

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

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

Если для определенной ветви метка " Предварительная сборка готова" не отображается, нужно проверить следующее.

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

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

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

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

Увеличение предельной суммы расходов на GitHub Actions

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

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

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

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

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

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

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

  1. На GitHub.com перейдите на главную страницу репозитория. 1. Нажмите Параметры под именем репозитория. Кнопка параметров репозитория

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

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

    Снимок экрана: список предварительных сборок с выделенным элементом "Изменить"

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

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

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

    Снимок экрана: раздел дополнительных параметров и параметр "Отключить предварительную настройку"

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

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