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

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

Вы можете настроить проект для автоматической предварительной сборки пространства кода при каждой отправке изменений в репозиторий.

Кто может использовать эту функцию

People with admin access to a repository can configure prebuilds for the repository.

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

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

Обычно при настройке предварительных сборок для ветви они доступны для различных типов компьютеров. Однако если в репозитории больше 32 ГБ, предварительные сборки не будут доступны для двух- и четырехъядерных компьютеров, так как хранилище ограничено 32 ГБ.

Предварительные требования

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

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

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

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

  3. В разделе "Конфигурация предварительной сборки" выберите Настроить предварительную сборку.

    Кнопка "Настройка предварительных сборки"

  4. Выберите ветвь, для которой требуется настроить предварительные сборки.

    Раскрывающееся меню ветви

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

  5. При необходимости в раскрывающемся меню Файл конфигурации выберите devcontainer.json файл конфигурации, который вы хотите использовать для предварительных сборок. Дополнительные сведения см. в статье Общие сведения о контейнерах разработки.

    Раскрывающееся меню файла конфигурации

  6. Выберите способ автоматической активации обновлений предварительной сборки.

    • Каждая отправка (параметр по умолчанию). При использовании этого параметра предварительные сборки будут обновляться при каждой отправке, выполненной в данную ветвь. Это гарантирует, что пространства кода, созданные из предварительной сборки, всегда будут содержать последнюю конфигурацию пространства кода, включая все недавно добавленные или обновленные зависимости.
    • При изменении конфигурации — с помощью этого параметра предварительные сборки будут обновляться при каждом обновлении связанных файлов конфигурации для заданного репозитория и ветви. Это гарантирует, что изменения в файлах конфигурации контейнера разработки для репозитория используются при создании пространства кода из предварительной сборки. Рабочий процесс GitHub Actions, который обновляет предварительные сборки, будет выполняться реже, поэтому этот параметр будет использовать меньше GitHub Actions минут. Однако этот вариант не гарантирует, что пространства кода всегда содержат недавно добавленные или обновленные зависимости, поэтому их может потребоваться добавить или обновить вручную после создания пространства кода.
    • По расписанию . С помощью этого параметра вы можете обновлять предварительные сборки по пользовательскому расписанию, определенному вами. Это может снизить потребление GitHub Actions минут, однако при использовании этого параметра можно создать codespace, которые не используют последние изменения конфигурации контейнера разработки.

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

  7. При необходимости выберите Уменьшить предварительную сборку, доступную только для определенных регионов , чтобы создавать предварительные сборки только в указанных регионах. Выберите регионы, в которых должны быть доступны предварительные сборки.

    По умолчанию предварительные сборки создаются во всех доступных регионах с оплатой хранилища для каждой предварительной сборки.

    Параметры выбора региона

    Примечания

    • За предварительную сборку в каждом регионе взимается отдельная плата за хранение. Поэтому следует включить предварительные сборки только для регионов, где они точно будут использоваться. Дополнительные сведения см. в статье Сведения о выставлении счетов за GitHub Codespaces.
    • Разработчики могут задать регион по умолчанию для GitHub Codespaces, что позволяет включить предварительные сборки для меньшего числа регионов. Дополнительные сведения см. в разделе Настройка региона по умолчанию для GitHub Codespaces.
  8. При необходимости в разделе Журнал шаблонов укажите количество сохраняемых версий предварительной сборки. Можно ввести любое число от 1 до 5. Число сохраненных версий по умолчанию равно 2. Это означает, что сохраняются только последняя предварительная сборка и предыдущая версия.

    Параметр журнала предварительной сборки

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

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

    Каждая сохраненная версия предварительной сборки связана с затратами на хранение. Например, если вы создаете предварительные сборки в 4 регионах и сохраняете 2 версии, с вас будет взиматься плата за хранение до 8 предварительных сборок. Дополнительные сведения о выставлении счетов см. в статье Сведения о выставлении счетов за GitHub Codespaces.

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

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

  10. При необходимости в нижней части страницы щелкните Показать дополнительные параметры.

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

    Если в разделе "Дополнительные параметры" выбрать Отключить оптимизацию предварительной сборки, codespaces будут созданы без предварительной сборки, если последний рабочий процесс предварительной сборки завершился сбоем или выполняется в настоящее время. Дополнительные сведения см. в разделе Устранение неполадок с предварительными сборками.

  11. Нажмите кнопку Создать.

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

    Щелкните значок , чтобы просмотреть сведения о необходимых разрешениях.

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

    Щелкните Авторизовать и продолжите , чтобы предоставить эти разрешения для создания предварительных сборок. Кроме того, можно нажать кнопку Продолжить без авторизации , но в этом случае пространства кода, созданные из результирующих предварительных сборок, могут работать неправильно.

    Примечание. Пользователи, создающие среды codespace с помощью этой предварительной сборки, также получат запрос на предоставление разрешений.

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

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

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

Настройка переменных среды

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

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

Предварительные сборки не могут использовать секреты на уровне пользователя во время создания среды, поскольку такие секреты недоступны, пока не будет создана среда codespace.

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

Команды onCreateCommand и updateContentCommand можно использовать в devcontainer.json для включения длительных процессов в процесс создания предварительной сборки. Дополнительные сведения см. в документации по Visual Studio Code, devcontainer.json reference.

onCreateCommand выполняется только один раз при создании предварительной сборки updateContentCommand , в то время как выполняется при создании предварительной сборки и при последующих обновлениях. Добавочные сборки должны быть включены в updateContentCommand, так как они представляют источник проекта и должны быть включены для каждого обновления предварительной сборки.

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