Visão geral dos executor maiors
Além dos executores hospedados GitHub padrão, o GitHub oferece aos clientes de planos GitHub Team e GitHub Enterprise Cloud um intervalo de máquinas virtuais gerenciadas com mais RAM, CPU e espaço em disco. Esses executores são hospedados por GitHub e têm o aplicativo executor e outras ferramentas pré-instalados.
O GitHub oferece executor maiors com os sistemas operacionais macOS, Ubuntu ou Windows, e diferentes recursos estão disponíveis dependendo do sistema operacional que você usa. Para obter mais informações, consulte "Recursos adicionais para o executor maiors".
Sobre executor maiors para Ubuntu e o 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".
executor maiors 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 executor maiors. Para obter mais informações, consulte "Recursos adicionais para o executor maiors".
Sobre executor maiors 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 executor maiors do macOS.
Tamanho do executor | Arquitetura | Processador (CPU) | Memória (RAM) | Armazenamento (SSD) | Rótulo de fluxo de trabalho YAML |
---|---|---|---|---|---|
grande | Intel | 12 | 30 GB | 14 GB | macos-latest-large , macos-12-large , macos-13-large [Beta] |
XLarge | arm64 (M1) | 6 CPU e 8 GPU | 14 GB | 14 GB | macos-latest-xlarge [Beta], macos-13-xlarge [Beta] |
Limitações para executor maiors 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. Para obter mais informações, confira "Como executar trabalhos em executores maiores".
- Devido a uma limitação da estrutura de virtualização da Apple, que nosso hipervisor usa, a virtualização aninhada não é compatível com os executores arm64.
Recursos adicionais para executor maior
Em comparação com os executores hospedados do GitHub padrão, os executor maiors têm recursos adicionais e sua disponibilidade varia de acordo com o sistema operacional do executor maior.
Sistema operacional | Ubuntu | Windows | macOS |
---|---|---|---|
Aceleração de hardware para ferramentas do Android SDK | |||
Endereços IP estáticos | |||
Dimensionamento automático | |||
Grupos de filtros |
Esses recursos podem aprimorar seus pipelines de CI/CD das seguintes maneiras.
- A aceleração de hardware para as ferramentas do Android SDK torna a execução de testes do Android muito mais rápida e consome menos minutos. Para obter mais informações sobre a aceleração de hardware do Android, confira Configurar a aceleração de hardware para o Android Emulator na documentação Desenvolvedores do Android.
- Atribuir endereços IP estáticos de executor maiors 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, confira as "Especificações de máquina para executor maior".
- O dimensionamento automático permite que executor maiors 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 executor maiors".
- Os grupos de executores permitem controlar o acesso a executor maiors para suas organizações, repositórios e fluxos de trabalho. Para obter mais informações, confira "Como controlar o acesso a executores maiores".
Para obter uma lista completa das ferramentas incluídas para cada sistema operacional executor, confira o repositório Imagens do executor GitHub Actions.
Noções básicas sobre cobrança
Observação: Executor maiors não são qualificados para o uso de minutos incluídos em repositórios privados. Para repositórios públicos e privados, quando executor maiors estiverem em uso, eles sempre serão cobrados com a taxa por minuto.
Em comparação com os executores hospedados GitHub padrão, os executor maiors 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 executor maiors
Processador (CPU) | Memória (RAM) | Armazenamento (SSD) | OS (sistema operacional) |
---|---|---|---|
6 | 14 GB | 14 GB | macOS |
12 | 30 GB | 14 GB | macOS |
4 | 16 GB | 150 GB | Ubuntu |
8 | 32 GB | 300 GB | Ubuntu, Windows |
16 | 64 GB | 600 GB | Ubuntu, Windows |
32 | 128 GB | 1.200 GB | Ubuntu, Windows |
64 | 256 GB | 2.040 GB | Ubuntu, Windows |
Sobre os grupos de executores
Observação: somente executor maiors 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 executor maiors
Observação: este diagrama de arquitetura só se aplica a executor maiors 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 executor maiors
Observação: o dimensionamento automático só está disponível para executor maiors 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, confira "Gerenciar executores maiores".
Networking for executor maiors
Observação: a atribuição de endereços IP estáticos a runners só está disponível para executor maiors com sistemas operacionais Linux ou Windows.
Por padrão, os executor maiors recebem um endereço IP dinâmico que é alterado para cada trabalho executado. Opcionalmente, os clientes de GitHub Enterprise Cloud podem configurar os executor maiors deles para receber um endereço IP estático 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 executor maiors com intervalos de endereços IP estáticos para os executor maiors criados no nível da empresa. Além disso, você pode usar até 10 executor maiors com intervalos de endereços IP estáticos para os executor maiors criados no nível da organização, para cada organização na empresa. 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.
Observação: se os executores não forem usados por mais de 30 dias, os intervalos de endereços IP deles serão removidos automaticamente e não poderão ser recuperados.