Поддерживаемые средства выполнения и аппаратные ресурсы
Ассортимент GitHubразмещённых бегунов доступен для использования в публичных и частных репозиториях.
Список доступных средств выполнения см. в разделе:
- Стандартные средства выполнения для общедоступных репозиториев
- Стандартные раннеры для частных репозиториев
GitHub-Hosted Linux runners поддерживают аппаратное ускорение для инструментов Android SDK, что значительно ускоряет выполнение тестов Android и занимает меньше минут. Дополнительные сведения об аппаратном ускорение Android см. в статье "Настройка аппаратного ускорения для эмулятора Android" в документации разработчиков Android.
Примечание.
Раннер-образы -latest — это самые свежие стабильные образы, которые GitHub предоставляют, а возможно, и не являются самой новой версией операционной системы, доступной у поставщика операционной системы.
Предупреждение
Образы бета-версии и устаревшие предоставляются как есть, "со всеми сбоями" и "как доступны" и исключены из соглашения об уровне обслуживания и гарантии. Для образов бета-версий может не оказываться поддержка.
Стандартные GitHubразмещённые раннеры для публичных репозиториев
Для общедоступных репозиториев задания с метками рабочего процесса, показанными в таблице ниже, будут выполняться с соответствующими спецификациями. За исключением средств выполнения тестов с одним процессором, каждое средство выполнения GitHub-hosted является новой виртуальной машиной (VM), размещенной в GitHub. Single-CPU средства выполнения тестов размещаются в контейнере на общей виртуальной машине — см. раздел AUTOTITLE. Использование стандартных GitHub-hosted runners бесплатно и неограничено на публичных репозиториях.
| Виртуальная машина / контейнер | Процессор (ЦП) | Память (ОЗУ) | Хранилище (SSD) | архитектура | Метка рабочего процесса |
|---|---|---|---|---|---|
| Linux | 1 | 5 GB | 14 GB | x64 |
ubuntu-slim
|
| Linux | 4 | 16 ГБ | 14 ГБ | x64 |
|
Стандартные GitHub-hosted раннеры для приватных репозиториев
Для приватных репозиториев задания с метками рабочих процессов, показанных в таблице ниже, будут выполняться на виртуальных машинах с соответствующими спецификациями. Эти участники используют выделенные бесплатные минуты вашего GitHub аккаунта и затем взимают плату по ставке за минуту. См . раздел AUTOTITLE.
| виртуальная машина | Процессор (ЦП) | Память (ОЗУ) | Хранилище (SSD) | архитектура | Метка рабочего процесса |
|---|---|---|---|---|---|
| Linux | 1 | 5 GB | 14 GB | x64 |
ubuntu-slim
|
| Linux | 2 | 8 ГБ | 14 ГБ | x64 |
|
В журналах рабочих процессов указывается средство выполнения, использовавшееся для запуска задания. Дополнительные сведения см. в разделе Просмотр журнала выполнения рабочего процесса.
Ограничения для runners macOS arm64
- Все действия, предоставляемые GitHub, совместимы с arm64 GitHubразмещенными средствами выполнения. Однако действия сообщества могут быть несовместимы с arm64 и должны быть установлены вручную во время выполнения.
- Вложенная виртуализация не поддерживается из-за ограничений Virtualization Framework от Apple.
- Сетевые возможности, такие как частная сеть Azure и назначение статических IP-адресов, в настоящее время недоступны для более крупных runners macOS.
- Для runners macOS arm64 не назначен статический идентификатор UUID/UDID, так как Apple не поддерживает эту функцию. Однако модули запуска Intel MacOS назначаются статическим идентификатором UDID, в частности
4203018E-580F-C1B5-9525-B745CECA79EB. Если вы создаете и подписываетесь на том же узле, на котором планируется протестировать сборку, вы можете подписаться с помощью профиля подготовки разработки. Если вам требуется статический UDID, можно использовать средства запуска Intel и добавить его UDID в учетную запись разработчика Apple.
Single-CPU бегунов
Single-CPU-размещённые GitHubбегуны доступны как в публичных, так и в частных репозиториях. Эти средства выполнения, указанные с помощью метки ubuntu-slimрабочего процесса, предлагают более дешевый вариант для выполнения упрощенных операций. Этот тип средства выполнения тестов оптимизирован для задач автоматизации, операций выдачи и кратковременных заданий. Они не подходят для типичных тяжеловесных сборок CI/CD.
ubuntu-slim Бегуны выполняют рабочие процессы Actions в Ubuntu Linux внутри контейнера, а не в полном экземпляре виртуальной машины. Когда работа начинается, GitHub автоматически создаётся новый контейнер для этой задачи. Все шаги в задании выполняются в контейнере, что позволяет шагам в этом задании обмениваться информацией с использованием файловой системы средства выполнения. После завершения задания контейнер автоматически списывается. Каждый контейнер обеспечивает изоляцию гипервизора уровня 2.
Примечание.
Контейнер для ubuntu-slim бегунов работает в режиме без привилегий. Это означает, что некоторые операции, требующие повышенных прав — такие как монтаж файловых систем, использование Docker-in-Docker или доступ к низкоуровневым функциям ядра — не поддерживаются.
На ubuntu-slim образ раннера устанавливается минимальный набор инструментов, подходящий для легких задач. Для подробностей о том, какое программное обеспечение установлено на образе ubuntu-slim , смотрите файл README в actions/runner-images репозитории.
Ограничения использования
Single-CPU бегуны следуют той же модели параллелизма, что и другие GitHubстандартные бегуны с -хостингом. См . раздел AUTOTITLE. Параллелизм для средств выполнения тестов определяется вашим планом.
Время ожидания задания для средств выполнения с одним процессором составляет 15 минут. Если задание достигает этого предела, задание завершается и завершается сбоем.
Более крупный бегунs
Более крупный бегунS доступны для организаций и предприятий на GitHub Team планах GitHub Enterprise Cloud .
Более крупный бегунS — управляемые виртуальные машины с большим ресурсом, чем стандартные GitHubразмещённые раннеры. Они предлагают следующие расширенные функции:
- Больше ОЗУ, ЦП и дискового пространства
- Статические IP-адреса
- Azure private networking
- Возможность группировать бегуна
- Автоматическое масштабирование для поддержки параллельных рабочих процессов
- Модули runner с поддержкой GPU
Они более крупные бегуны размещаются и GitHub имеют предварительно установленное приложение Runner и другие инструменты.
Дополнительные сведения см. в разделе Использование крупных средств выполнения.
Права администратора
Виртуальные машины Linux и macOS работают с использованием sudo без пароля. Если необходимо выполнить команды или установить средства, требующие больше привилегий, чем имеется у текущего пользователя, можно использовать sudo без необходимости вводить пароль. Дополнительные сведения см. в руководстве sudo.
Виртуальные машины Windows настроены для запуска от имени администраторов с отключенной функцией контроля учетных записей (UAC). Дополнительные сведения см. в статье о работе управления учетными записями пользователей в документации по Windows.
IP-адреса
Чтобы получить список диапазонов IP-адресов, используемых GitHub Actions для GitHub-hosted runners, можно использовать GitHub REST API. Дополнительные сведения см actions . в разделе "Ключ" в ответе конечной GET /meta точки. Дополнительные сведения см. в разделе Конечные точки REST API для метаданных.
Средства выполнения Windows и Ubuntu размещаются в Azure и, следовательно, имеют те же диапазоны IP-адресов, что и центры обработки данных Azure. Пользователи для macOS размещаются в GitHubсобственном облаке macOS.
Поскольку существует множество диапазонов IP-адресов для GitHub-hosted runners, мы не рекомендуем использовать их как списки разрешений для внутренних ресурсов. Вместо этого мы рекомендуем использовать крупное средство выполненияs со статическим диапазоном IP-адресов или самостоятельные раннеры. Дополнительные сведения см. в разделе [AUTOTITLE или Использование крупных средств выполнения](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners).
Список GitHub Actions IP-адресов, возвращаемых API, обновляется раз в неделю.
Требования к коммуникации для GitHubбегунов с -hosted
-hosted GitHubrunner должен установить соединения с GitHub-принадлежащими конечными точками для выполнения важных коммуникационных операций. Кроме того, для запуска может потребоваться доступ к дополнительным сетям, которые вы указываете или используете в действии.
Чтобы обеспечить правильную коммуникацию для GitHub-hosted runners между сетями в вашей конфигурации, убедитесь, что разрешены следующие коммуникации.
Примечание.
Некоторые из перечисленных доменов настраиваются с помощью CNAME записей. Для некоторых брандмауэров может потребоваться рекурсивно добавить правила для всех записей CNAME. Обратите внимание, что CNAME записи могут измениться в будущем, и что только перечисленные домены останутся постоянными.
Требуется для основных операций:
github.com api.github.com *.actions.githubusercontent.com
github.com
api.github.com
*.actions.githubusercontent.com
Требуется для загрузки действий:
codeload.github.com
codeload.github.com
Требуется для отправки и скачивания сводок заданий, журналов, артефактов рабочих процессов и кэшей:
results-receiver.actions.githubusercontent.com *.blob.core.windows.net
results-receiver.actions.githubusercontent.com
*.blob.core.windows.net
Требуется для обновления версий средства выполнения тестов:
objects.githubusercontent.com objects-origin.githubusercontent.com github-releases.githubusercontent.com github-registry-files.githubusercontent.com
objects.githubusercontent.com
objects-origin.githubusercontent.com
github-releases.githubusercontent.com
github-registry-files.githubusercontent.com
Требуется для получения маркеров OIDC:
*.actions.githubusercontent.com
*.actions.githubusercontent.com
Необходимо для скачивания или публикации пакетов или контейнеров в GitHub пакеты:
*.pkg.github.com pkg-containers.githubusercontent.com ghcr.io
*.pkg.github.com
pkg-containers.githubusercontent.com
ghcr.io
Нужен для Хранилище больших файлов Git
github-cloud.githubusercontent.com github-cloud.s3.amazonaws.com
github-cloud.githubusercontent.com
github-cloud.s3.amazonaws.com
Требуется для работы Dependabot updates
dependabot-actions.githubapp.com
dependabot-actions.githubapp.com
Требуется для скачивания ресурсов выпуска:
release-assets.githubusercontent.com
release-assets.githubusercontent.com
Требуется для виртуальной сети:
api.snapcraft.io
api.snapcraft.io
Файловые системы
GitHub выполняет действия и команды shell в определённых каталогах виртуальной машины. Пути к файлам на виртуальных машинах не являются статическими. Используйте переменные GitHub среды для построения путей файлов для home, workspace, и workflow каталогов.
| Directory | Переменная среды | Description |
|---|---|---|
home | HOME | Содержит данные, связанные с пользователем. Например, этот каталог может содержать учетные данные из попытки входа. |
workspace | GITHUB_WORKSPACE | В этом каталоге выполняются действия и команды оболочки. Действие может изменить содержимое этого каталога, к которому могут обращаться последующие действия. |
workflow/ | GITHUB_EVENT_PATH | Полезные данные POST события веб-перехватчика, которое активировало рабочий процесс. |
| GitHub переписывает это каждый раз при выполнении действия, чтобы изолировать содержимое файла между действиями. |
Для списка переменных GitHub окружения, которые создаются для каждого рабочего процесса, см. AUTOTITLE.
Файловая система контейнера Docker
Действия, выполняемые в контейнерах Docker, имеют статические каталоги по пути /github. Однако мы настоятельно рекомендуем использовать переменные среды по умолчанию для создания путей к файлам в контейнерах Docker.
GitHub Резервирует /github префикс пути и создаёт три каталога для действий.
/github/home/github/workspace- Примечание. GitHub Actions должен выполнять пользователь Docker по умолчанию (root). Убедитесь, что в файле Dockerfile не задана инструкцияUSER, иначе вы не сможете получить доступ кGITHUB_WORKSPACE./github/workflow