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

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

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

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

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

Параметры уровня репозитория для GitHub Codespaces доступны для всех репозиториев, принадлежащих личным учетным записям.

Для репозиториев, принадлежащих организациям, доступны параметры уровня репозитория для GitHub Codespaces в планах GitHub Team и GitHub Enterprise. Чтобы получить доступ к параметрам, организация или ее родительская организация должна добавить метод оплаты и установить предельную сумму расходов для GitHub Codespaces. Дополнительные сведения см. в разделах Включение GitHub Codespaces для организации и Продукты GitHub.

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

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

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

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

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

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

Для репозиториев, принадлежащих организации, можно настроить предварительные сборки, если организация использует план GitHub Team или GitHub Enterprise. Кроме того, необходимо добавить метод оплаты и установить предельную сумму расходов для GitHub Codespaces для учетной записи организации или ее родительского предприятия. Дополнительные сведения см. в разделах Управление предельной суммой расходов для GitHub Codespaces и Продукты GitHub.

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

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

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

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

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

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

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

    Снимок экрана: параметры конфигурации для предварительной сборки с раскрывающимся меню, в котором перечислены ветви для выбора. В настоящее время выбрана ветвь "main".

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

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

    Снимок экрана: раскрывающееся меню файла конфигурации. В списке указаны четыре файла конфигурации с выбранным параметром .devcontainer/devcontainer.json.

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

    • Каждая отправка (параметр по умолчанию) — при использовании этого параметра предварительные сборки будут обновляться при каждой отправке, выполненной в указанную ветвь. Это гарантирует, что пространства кода, созданные из предварительной сборки, всегда будут содержать последнюю конфигурацию пространства кода, включая все недавно добавленные или обновленные зависимости.

    • При изменении конфигурации — с помощью этого параметра предварительные сборки будут обновляться при каждом изменении любого из следующих файлов:

      • .devcontainer/devcontainer.json

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

      • Dockerfile, на который ссылается build.dockerfile свойство .devcontainer/devcontainer.json файла.

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

    • Запланировано . С помощью этого параметра предварительные сборки можно обновлять по пользовательскому расписанию, определенному вами. Это может снизить потребление GitHub Actions минут, однако при использовании этого параметра можно создавать пространства кода, которые не используют последние изменения конфигурации контейнера разработки.

    Снимок экрана: параметры триггеров предварительной сборки. Выбран параметр "Запланировано" и для параметра задано значение "Каждый день" в "13:00" и "15:30".

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

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

    Снимок экрана: параметры "Доступность по регионам". Выбран параметр "Уменьшить доступность предварительной сборки только для определенных регионов" с двумя выбранными регионами.

    Примечания

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

    Снимок экрана: параметр "Журнал шаблонов". Для нее задано 2 версии.

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

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

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

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

    Снимок экрана: параметр "Уведомления о сбоях". Добавлена команда с именем octocat-team.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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