12 KiB
title, shortTitle, intro, versions, topics, redirect_from, ms.openlocfilehash, ms.sourcegitcommit, ms.translationtype, ms.contentlocale, ms.lasthandoff, ms.locfileid
| title | shortTitle | intro | versions | topics | redirect_from | ms.openlocfilehash | ms.sourcegitcommit | ms.translationtype | ms.contentlocale | ms.lasthandoff | ms.locfileid | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Сведения о предварительных сборках в GitHub Codespaces | About prebuilds | Предварительные сборки {% data variables.product.prodname_github_codespaces %} помогают ускорить создание новых пространств кода для больших или сложных репозиториев. |
|
|
|
e0962e410f2227a23ff98c8a3e7995ea8ec8a914 | e8c012864f |
MT | ru-RU | 11/09/2022 | 148158800 |
Общие сведения
{% data reusables.codespaces.prebuilds-definition %}
Если в настоящее время создание codespace для репозитория занимает более 2 минут, вы, скорее всего, выиграете от использования предварительных сборок. Это связано с тем, что в предварительной сборке любой исходный код, расширения редактора, зависимости проекта, команды и конфигурации уже скачаны, установлены и применены перед созданием codespace.
По умолчанию всякий раз при отправке изменения в репозиторий {% data variables.product.prodname_github_codespaces %} использует {% data variables.product.prodname_actions %} для автоматического обновления предварительных сборок.
Если для определенной ветви репозитория, файла конфигурации контейнера разработки и вашего региона доступны предварительные сборки, вы увидите метку "{% octicon "zap" aria-label="The zap icon" %} Доступна предварительная сборка" в списке типов компьютеров при создании codespace. Если предварительная сборка все еще создается, вы увидите метку "{% octicon "history" aria-label="The history icon" %} Предварительная сборка выполняется". Дополнительные сведения см. в разделе Создание пространства кода для репозитория.
При создании codespace на основе шаблона на странице "Ваши codespaces" {% data variables.product.prodname_dotcom %} может автоматически использовать предварительную сборку для ускорения создания. Дополнительные сведения о шаблонах см. в разделе Создание codespace на основе шаблона.
Процесс предварительной сборки
Чтобы создать предварительную сборку, необходимо настроить конфигурацию предварительной сборки. Когда вы сохраняете конфигурацию, запускается рабочий процесс {% data variables.product.prodname_actions %} для создания каждой из необходимых предварительных сборок, по одному рабочему процессу на предварительную сборку. Рабочие процессы также запускаются всякий раз, когда необходимо обновить предварительные сборки для вашей конфигурации. Это может происходить с запланированными интервалами, при отправке в репозиторий с поддержкой предварительной сборки или при изменении конфигурации контейнера разработки. Дополнительные сведения см. в разделе Настройка предварительных сборок.
Когда запускается рабочий процесс предварительной сборки, {% data variables.product.prodname_dotcom %} создает временную среду codespace, выполняя операции настройки вплоть до любых команд onCreateCommand и updateContentCommand в файле devcontainer.json включительно. Во время создания предварительной сборки команды не postCreateCommand выполняются. Дополнительные сведения об этих командах см. в справочнике по devcontainer.json в документации по {% data variables.product.prodname_vscode_shortname %}. Затем будет создан и сохранен моментальный снимок созданного контейнера.
Как и в случае с другими рабочими процессами {% data variables.product.prodname_actions %}, выполнение рабочего процесса конфигурации предварительной сборки будет либо потреблять часть минут {% data variables.product.prodname_actions %}, включенных в вашу учетную запись, либо будет взиматься плата за {% data variables.product.prodname_actions %} минут. Плата за хранение предварительных сборок codespace взимается так же, как за хранение активных или остановленных codespace. Дополнительные сведения см. в статье Сведения о выставлении счетов за {% data variables.product.prodname_github_codespaces %}.
Когда вы создаете среду codespace из предварительной сборки, {% data variables.product.prodname_dotcom %} скачивает существующий снимок контейнера из хранилища и развертывает его на новой виртуальной машине, выполняя оставшиеся команды, указанные в конфигурации контейнера разработки. Так как многие операции уже выполнены, например клонирование репозитория, создание codespace из предварительной сборки может быть значительно быстрее, чем создание без предварительной сборки. Это так, когда репозиторий большой и (или) команды onCreateCommand выполняются долго.
Сведения об отправке изменений в ветви с включенной предварительной сборкой
По умолчанию каждая отправка в ветвь с конфигурацией предварительной сборки приводит к запуску рабочего процесса {% data variables.product.prodname_dotcom %}, управляемого {% data variables.product.prodname_actions %}, для обновления предварительной сборки. Рабочий процесс предварительной сборки имеет ограничение параллелизма: запускается один рабочий процесс за раз для заданной конфигурации предварительной сборки, если только не были внесены изменения, влияющие на конфигурацию контейнера разработки для связанного репозитория. Дополнительные сведения см. в статье Общие сведения о контейнерах разработки. Если запуск уже выполняется, то запуск рабочего процесса, который был поставлен в очередь последним, будет выполнен после завершения текущего запуска.
Если для предварительной сборки настроено обновление при каждой отправке, это означает, что в случае очень частых отправок в репозиторий обновления предварительной сборки будут происходить не реже, чем требуется для запуска рабочего процесса предварительной сборки. Итак, если выполнение рабочего процесса обычно занимает один час, предварительные сборки будут создаваться для репозитория примерно раз в час, если выполнение завершится успешно, или чаще, если были отправки, изменяющие конфигурацию контейнера разработки в ветви.
Например, давайте представим, что выполняется 5 последовательных отправок в ветвь с предварительной конфигурацией. В этой ситуации:
-
Запуск рабочего процесса выполняется для первой принудительной отправки, чтобы обновить предварительную сборку.
-
Если 4 оставшиеся отправки не влияют на конфигурацию контейнера разработки, выполнение рабочего процесса для них ставится в очередь в состоянии "ожидание".
Если какая-либо из оставшихся 4 отправок изменяет конфигурацию контейнера разработки, то служба не пропустит это и немедленно запустит рабочий процесс создания предварительной сборки, соответствующим образом обновив предварительную сборку в случае успеха.
-
После завершения первого запуска рабочие процессы для второй, третьей и четвертой отправок будут отменены, а последний поставленный в очередь рабочий процесс (для пятой отправки) будет запущен и обновит предварительную сборку.
