Visão geral dos executores avançados
Os clientes nos planos GitHub Team e GitHub Enterprise Cloud podem escolher entre várias máquinas virtuais gerenciadas que têm mais recursos do que os executores hospedados standard GitHub-hosted runners. Essas máquinas são chamadas de "executor maior." Eles oferecem os seguintes recursos avançados:
- Mais RAM, CPU e espaço em disco
- Endereços IP estáticos
- Rede privada do Azure
- A capacidade de agrupar executores
- Dimensionamento automático para oferecer suporte a fluxos de trabalho simultâneos
- Executores alimentados por GPU e ARM
Esses executores avançados são hospedados pelo GitHub e têm o aplicativo executor e outras ferramentas previamente instalados.
O GitHub oferece executores avançados com os sistemas operacionais macOS, Ubuntu ou Windows, e diferentes recursos e tamanhos estão disponíveis dependendo do sistema operacional que você usa. Para obter mais informações, consulte "Recursos adicionais para executores avançados".
Sobre executores avançados para Ubuntu e Windows
Executor maiors com sistemas operacionais Ubuntu ou Windows estão configurados em sua organização ou empresa. Quando você adiciona executor maior, está definindo um tipo de máquina a partir de uma seleção de especificações de hardware e imagens de sistema operacional disponíveis. GitHub criarão várias instâncias desse executor que são escaladas verticalmente para corresponder às demandas de trabalho da sua organização, com base nos limites de dimensionamento automático definidos. Para obter mais informações, confira "Gerenciar executores maiores".
executores avançados para Ubuntu e Windows oferecem recursos de dimensionamento automático e a capacidade de atribuir aos executores endereços IP estáticos de um intervalo específico. Eles também podem ser gerenciados usando grupos de executores, o que permite controlar o acesso a executores avançados. Para obter mais informações, consulte "Recursos adicionais para executores avançados".
Sobre executores avançados macOS
Executor maiors com um sistema operacional macOS são usados atualizando o rótulo do fluxo de trabalho YAML para a imagem do executor desejada. Para executar seus fluxos de trabalho em um executor maior para macOS, atualize a chave runs-on
para usar um dos rótulos do executor maior para macOS definidos pelo executor maior. Não requer configuração adicional. Para obter mais informações, confira "Como executar trabalhos em executores maiores".
Os seguintes tamanhos de máquinas estão disponíveis para executores avançados macOS.
Tamanho do executor | Arquitetura | Processador (CPU) | Memória (RAM) | Armazenamento (SSD) | Rótulo do fluxo de trabalho |
---|---|---|---|---|---|
Grande | Intel | 12 | 30 GB | 14 GB | macos-latest-large , macos-12-large , macos-13-large , macos-14-large [latest], macos-15-large [Versão prévia pública] |
XLarge | arm64 (M1) | 6 (+ 8 aceleração de hardware GPU) | 14 GB | 14 GB | macos-latest-xlarge , macos-13-xlarge , macos-14-xlarge [mais recente], macos-15-xlarge [Versão prévia pública] |
Limitações para executores avançados macOS
- Todas as ações fornecidas pelo GitHub são compatíveis com executores arm64 hospedados pelo GitHub. No entanto, as ações da comunidade podem não ser compatíveis com o arm64 e precisam ser instaladas manualmente em tempo de execução.
- A virtualização aninhada e os Metal Performance Shaders (MPS) não são suportados devido à limitação do Virtualization Framework da Apple.
- Os recursos de rede, como a rede privada do Azure e a atribuição de IPs estáticos, não estão disponíveis atualmente para corredores maiores do macOS.
- Os executores macOS arm64 não têm um UUID/UDID estático atribuído a eles porque a Apple não suporta esse recurso. No entanto, os executores Intel MacOS recebem um UDID estático, especificamente
4203018E-580F-C1B5-9525-B745CECA79EB
. Caso esteja criando e assinando no mesmo host no qual planeja testar a compilação, você poderá assinar com um perfil de provisionamento de desenvolvimento. Caso precise de um DID estático, você poderá usar os executores Intel e adicionar seu UDID à sua conta de desenvolvedor da Apple.
Recursos adicionais para executores avançados
Em comparação com os executores hospedados do GitHub padrão, os executores avançados têm recursos adicionais e sua disponibilidade varia de acordo com o sistema operacional do executor maior.
Ubuntu | Windows | macOS | |
---|---|---|---|
Endereços IP estáticos | |||
Redes privadas do Azure | |||
Dimensionamento automático | |||
Grupos de filtros |
Esses recursos podem aprimorar seus pipelines de CI/CD das seguintes maneiras.
- Atribuir endereços IP estáticos de executores avançados a partir de um intervalo específico permite que você use esse intervalo para configurar uma lista de permissões de firewall. Para obter mais informações, consulte "Sistema de rede para executores avançados".
- O dimensionamento automático permite que executores avançados sejam dimensionados até um limite máximo definido por você, para que seus fluxos de trabalho possam ser executados simultaneamente. Para obter mais informações, confira "Dimensionamento automático de executores avançados".
- Os grupos de executores permitem controlar o acesso a executores avançados para suas organizações, repositórios e fluxos de trabalho. Para obter mais informações, confira "Como controlar o acesso a executores maiores".
Imagens do executor
Os Executor maiors são executados em máquinas virtuais (VMs), e o GitHub instala um disco rígido virtual (VHD) nessa máquina durante o processo de criação da VM. Você pode escolher entre diferentes imagens de VM para instalar em seus executores.
GitHub-owned images: essas imagens são mantidas pelo GitHub e estão disponíveis para corredores Linux x64, Windows x64 e macOS (x64 e arm). Para mais informações sobre essas imagens e para obter uma lista completa das ferramentas incluídas para cada sistema operacional executor, confira o repositório Imagens do executor GitHub Actions.
Imagens de parceiros: as imagens de parceiros não são gerenciadas pelo GitHub e são extraídas do Azure Marketplace. Para mais informações sobre a imagem da área de trabalho do Windows 11, consulte Área de trabalho do Microsoft Windows 11. Para mais informações sobre as imagens compatíveis com o executor de GPU, consulte VMI otimizada por GPU NVIDIA e Máquina Virtual de Ciência de Dados – Windows 2019. Para obter mais informações sobre as imagens para executores com ARM, consulte o actions/partner-runner-images
repositório. Este também é o lugar para fornecer feedback ou relatar problemas sobre imagens de terceiros.
Noções básicas sobre cobrança
Note
Executor maiors não são elegíveis para o uso de minutos incluídos nos repositórios privados. Para repositórios públicos e privados, quando executores avançados estiverem em uso, eles sempre serão cobrados com a taxa por minuto.
Em comparação com os executores hospedados GitHub padrão, os executores avançados são cobrados de maneira diferente. Executor maior são cobrados somente pela taxa por minuto do tempo em que os fluxos de trabalho são executados neles. Não há nenhum custo associado à criação de um executor maior que não está sendo usado pelo fluxo de trabalho. Para obter mais informações, confira "Sobre a cobrança das GitHub Actions".
Tamanhos de computador para executores avançados
Você pode escolher entre várias especificações para executores avançados.
Especificações para executores avançados gerais
CPU | Memória (RAM) | Armazenamento (SSD) | Arquitetura | OS (sistema operacional) |
---|---|---|---|---|
6 | 14 GB | 14 GB | arm64 | macOS |
12 | 30 GB | 14 GB | x64 | macOS |
2 | 8 GB | 75 GB | X64, ARM64 | Ubuntu |
4 | 16 GB | 150 GB | X64, ARM64 | Ubuntu, Windows |
8 | 32 GB | 300 GB | X64, ARM64 | Ubuntu, Windows |
16 | 64 GB | 600 GB | X64, ARM64 | Ubuntu, Windows |
32 | 128 GB | 1.200 GB | X64, ARM64 | Ubuntu, Windows |
64 | 208 GB | 2.040 GB | arm64 | Ubuntu, Windows |
64 | 256 GB | 2.040 GB | x64 | Ubuntu, Windows |
Note
O executor de 4 vCPUs do Windows só funciona com a imagem da área de trabalho do Windows 11.
Especificações para executores avançados de GPU
CPU | GPU | Placa de GPU | Memória (RAM) | Memória da GPU (VRAM) | Armazenamento (SSD) | OS (sistema operacional) |
---|---|---|---|---|---|---|
4 | 1 | Tesla T4 | 28 GB | 16 GB | 176 GB | Ubuntu, Windows |
Sobre os grupos de executores
Note
Somente executores avançados com sistemas operacionais Linux ou Windows podem ser atribuídos a grupos de executores.
Grupos de executores permitem que os administradores controlem o acesso aos executores nos níveis da organização e da empresa. Com grupos de executores, você pode coletar conjuntos de executores e criar um limite de segurança ao redor deles. Em seguida, você pode decidir quais organizações ou repositórios têm permissão para executar trabalhos nesses conjuntos de computadores. Durante o processo de implantação de executor maior, o executor pode ser adicionado a um grupo existente ou, caso contrário, ele ingressará em um grupo padrão. Você pode criar um grupo seguindo as etapas em "Como controlar o acesso a executores maiores".
Visão geral de arquitetura de executores avançados
Note
Este diagrama de arquitetura só se aplica a executores avançados com sistemas operacionais Linux ou Windows.
Os Executor maiors são gerenciados no nível da organização, em que são organizados em grupos que podem conter várias instâncias do executor. Eles também podem ser criados no nível da empresa e compartilhados com as organizações na hierarquia. Depois de criar um grupo, você pode adicionar um executor ao grupo e atualizar seus fluxos de trabalho para direcionar o nome do grupo ou o rótulo atribuído a executor maior. Você também pode controlar quais repositórios têm permissão para enviar trabalhos ao grupo para processamento. Para obter mais informações sobre grupos, confira "Como controlar o acesso a executores maiores".
No diagrama a seguir, uma classe de executor hospedado nomeado ubuntu-20.04-16core
foi definida com configuração personalizada de hardware e sistema operacional.
- As instâncias desse executor são criadas e adicionadas automaticamente a um grupo chamado
grp-ubuntu-20.04-16core
. - Os executores receberam o rótulo
ubuntu-20.04-16core
. - Trabalhos de fluxo de trabalho usam o rótulo
ubuntu-20.04-16core
na chaveruns-on
deles para indicar o tipo de executor necessário para executar o trabalho. - GitHub Actions verifica o grupo de executores para ver se o seu repositório está autorizado a enviar trabalhos ao executor.
- O trabalho é executado na próxima instância disponível do executor
ubuntu-20.04-16core
.
Autoscaling executores avançados
Note
O dimensionamento automático só está disponível para executores avançados com sistemas operacionais Linux ou Windows.
Os Executor maiors podem ser dimensionados a fim de atender às suas necessidades. Você pode provisionar computadores para executar um número máximo especificado de trabalhos quando os trabalhos são enviados para processamento. Cada computador gerencia apenas um trabalho por vez, portanto, essas configurações determinam efetivamente o número de trabalhos que podem ser executados simultaneamente.
Você pode configurar a simultaneidade máxima do trabalho, que permite controlar seus custos definindo o número máximo paralelo de trabalhos que podem ser executados usando esse conjunto. Um valor mais alto aqui pode ajudar a evitar que os fluxos de trabalho sejam bloqueados devido ao paralelismo. Para obter mais informações sobre como definir limites, consulte "Gerenciar executores maiores". Para obter mais informações sobre os limites máximos de escalonamento automático para executores hospedados no GitHub, consulte "Limites de uso, cobrança e administração".
Atribuir endereços IP estáticos para executor maior
Você pode atribuir endereços IP estáticos a executores avançados que usam sistemas operacionais Linux ou Windows.
Os endereços IP estáticos atribuídos são todos utilizáveis e não estão na notação CIDR.
A rede privada para executores hospedados pela GitHub não oferece suporte para endereços IP estáticos para executores avançados. Para obter mais informações sobre rede privada para executores hospedados pela GitHub, consulte "Sobre a rede privada do Azure para executores hospedados no GitHub em sua empresa".
Sistema de rede para executores avançados
Por padrão, executores avançados recebem um endereço IP dinâmico que muda para cada trabalho executado. Opcionalmente, os clientes do GitHub Enterprise Cloud podem configurar seus executor maior para receber endereços IP estáticos do pool de endereços IP do GitHub. Para obter mais informações, confira "Sobre os endereços IP do GitHub".
Quando habilitadas, as instâncias de executor maior receberão um endereço de intervalos específicos que são exclusivos para o executor, permitindo que você use esses intervalos para configurar uma lista de permissões de firewall. Você pode usar até 10 executores avançados com intervalos de endereços IP estáticos no total em todos os executores avançados. Para obter mais informações, confira "Gerenciar executores maiores".
Para usar mais de 10 executores maiores com intervalos de endereços IP estáticos, entre em contato com conosco por meio do Portal de suporte do GitHub.
Note
Se os executores não forem usados por mais de 30 dias, os respectivos intervalos de endereços IP serão removidos automaticamente e não poderão ser recuperados.