Поддерживаемые средства выполнения и аппаратные ресурсы
Диапазоны данных GitHubразмещенных в среде runners доступны для использования в общедоступных и частных репозиториях.
Список доступных средств выполнения см. в разделе: * Стандартные средства выполнения для общедоступных репозиториев
- Стандартные модули runners для частных и внутренних репозиториев
GitHub, размещенных в Linux, поддерживают аппаратное ускорение средств пакета SDK для Android, что делает выполнение тестов Android гораздо быстрее и потребляет меньше минут. Дополнительные сведения об аппаратном ускорение Android см. в статье "Настройка аппаратного ускорения для эмулятора Android" в документации разработчиков Android.
Примечание.
Образы -latest запуска — это последние стабильные образы, предоставляемые GitHub и не самые последние версии операционной системы, доступные поставщиком операционной системы.
Предупреждение
Образы бета-версии и устаревшие предоставляются как есть, "со всеми сбоями" и "как доступны" и исключены из соглашения об уровне обслуживания и гарантии. Для образов бета-версий может не оказываться поддержка.
Стандартные GitHubразмещенные средства выполнения для общедоступных репозиториев
Для общедоступных репозиториев задания с метками рабочего процесса, показанными в таблице ниже, будут выполняться с соответствующими спецификациями. За исключением средств выполнения тестов с одним процессором, каждое средство выполнения GitHub-hosted является новой виртуальной машиной (VM), размещенной в GitHub. Single-CPU средства выполнения тестов размещаются в контейнере на общей виртуальной машине — см. раздел AUTOTITLE. Использование стандартных средств запуска GitHub-hosted является бесплатным и неограниченным в общедоступных репозиториях.
| Виртуальная машина / контейнер | Процессор (ЦП) | Память (ОЗУ) | Хранилище (SSD) | архитектура | Метка рабочего процесса |
|---|---|---|---|---|---|
| Linux | 1 | 5 GB | 14 GB | x64 |
ubuntu-slim
|
| Linux | 4 | 16 ГБ | 14 ГБ | x64 |
|
Стандартные GitHubразмещенные средства выполнения для internal and частные репозитории
Для частных репозиториев internal and задания, использующие метки рабочего процесса, показанные в таблице ниже, будут выполняться на виртуальных машинах с соответствующими спецификациями. Эти бегуны используют ваши GitHub счет бесплатной минуты, а затем взимается плата за минуту. См . раздел AUTOTITLE.
| виртуальная машина | Процессор (ЦП) | Память (ОЗУ) | Хранилище (SSD) | архитектура | Метка рабочего процесса |
|---|---|---|---|---|---|
| Linux | 1 | 5 GB | 14 GB | x64 |
ubuntu-slim
|
| Linux | 2 | 8 ГБ | 14 ГБ | x64 |
|
Примечание.
Модули запуска macOS недоступны в поддоменах GHE.com, например octocorp.ghe.com.
В журналах рабочих процессов указывается средство выполнения, использовавшееся для запуска задания. Дополнительные сведения см. в разделе Просмотр журнала выполнения рабочего процесса.
Ограничения для 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. - Модули запуска macOS недоступны в поддоменах GHE.com, например
octocorp.ghe.com.
Single-CPU бегунов
Single-CPU GitHub-hosted доступны как в общедоступных, так и в частных репозиториях. Эти средства выполнения, указанные с помощью метки 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
Клиенты в планах GitHub Team и GitHub Enterprise Cloud могут выбирать из диапазона управляемых виртуальных машин, имеющих больше ресурсов, чем стандартные GitHubразмещенные в среде runner. Эти компьютеры называются "более крупные бегуны". Они предлагают следующие расширенные функции:
- Больше ОЗУ, ЦП и дискового пространства
- Статические IP-адреса
- Частная сеть Azure
- Возможность группировать бегуна
- Автоматическое масштабирование для поддержки параллельных рабочих процессов
- Модули runner с поддержкой GPU
Эти данные более крупные бегуны размещаются GitHub и имеют приложение runner и другие средства, предварительно установленные.
Дополнительные сведения см. в разделе Использование крупных средств выполнения.
Права администратора
Виртуальные машины Linux и macOS работают с использованием sudo без пароля. Если необходимо выполнить команды или установить средства, требующие больше привилегий, чем имеется у текущего пользователя, можно использовать sudo без необходимости вводить пароль. Дополнительные сведения см. в руководстве sudo.
Виртуальные машины Windows настроены для запуска от имени администраторов с отключенной функцией контроля учетных записей (UAC). Дополнительные сведения см. в статье о работе управления учетными записями пользователей в документации по Windows.
IP-адреса
Получить список диапазонов IP-адресов, которые используются GitHub Actions для средств выполнения, размещенных в GitHub, можно с помощью REST API GitHub. Дополнительные сведения см actions . в разделе "Ключ" в ответе конечной GET /meta точки. Дополнительные сведения см. в разделе Конечные точки REST API для метаданных.
Средства выполнения Windows и Ubuntu размещаются в Azure и, следовательно, имеют те же диапазоны IP-адресов, что и центры обработки данных Azure. Средства выполнения macOS размещаются в облаке macOS, принадлежащем GitHub.
Так как существует так много диапазонов IP-адресов для GitHubразмещенных в нем средств, мы не рекомендуем использовать их в качестве списков разрешений для внутренних ресурсов. Вместо этого рекомендуется использовать крупное средство выполненияs со статическим диапазоном IP-адресов или локальными средствами выполнения. Дополнительные сведения см. в разделе [AUTOTITLE или Использование крупных средств выполнения](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners).
Список IP-адресов GitHub Actions, возвращаемых API, обновляется раз в неделю.
Требования к обмену данными для GitHubразмещенных в среде runners
Для выполнения важных операций коммуникации необходимо установить подключения к GitHub. Кроме того, для запуска может потребоваться доступ к дополнительным сетям, которые вы указываете или используете в действии.
Чтобы обеспечить правильную связь для GitHub, размещенных между сетями в конфигурации, убедитесь, что разрешены следующие связи.
Примечание.
Некоторые из перечисленных доменов настраиваются с помощью 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 выполняет действия и команды оболочки в определенных каталогах на виртуальной машине. Пути к файлам на виртуальных машинах не являются статическими. Используйте переменные среды, предоставляемые GitHub, для создания путей к файлам в каталогах home, workspaceи workflow.
| Directory | Переменная среды | Description |
|---|---|---|
home | HOME | Содержит данные, связанные с пользователем. Например, этот каталог может содержать учетные данные из попытки входа. |
workspace | GITHUB_WORKSPACE | В этом каталоге выполняются действия и команды оболочки. Действие может изменить содержимое этого каталога, к которому могут обращаться последующие действия. |
workflow/event.json | GITHUB_EVENT_PATH | Полезные данные POST события веб-перехватчика, которое активировало рабочий процесс. GitHub перезаписывает их каждый раз при выполнении действия для изоляции содержимого файла между действиями. |
Список переменных среды GitHub создает для каждого рабочего процесса, см. в разделе Хранение сведений в переменных.
Файловая система контейнера Docker
Действия, выполняемые в контейнерах Docker, имеют статические каталоги по пути /github. Однако мы настоятельно рекомендуем использовать переменные среды по умолчанию для создания путей к файлам в контейнерах Docker.
GitHub резервирует префикс пути /github и создает три каталога для действий.
/github/home-
`/github/workspace` - **Примечание**. GitHub Actions должен выполнять пользователь Docker по умолчанию (root). Убедитесь, что в файле Dockerfile не задана инструкция `USER`, иначе вы не сможете получить доступ к `GITHUB_WORKSPACE`. /github/workflow