Visão geral dos executores hospedados no GitHub
Os executores são as máquinas que fazem as execuções em um fluxo de trabalho GitHub Actions. Por exemplo, um executor pode clonar seu repositório localmente, instalar software de teste e executar comandos que avaliam seu código.
GitHub fornece executores que você pode usar para executar seus trabalhos ou você pode hospedar seus próprios executores. Cada executor hospedado em GitHub é uma nova VM (máquina virtual) hospedada por GitHub com o aplicativo executor e outras ferramentas pré-instaladas e está disponível com Ubuntu Linux, Sistemas operacionais Windows ou macOS. Ao usar um executor hospedada no GitHub, a manutenção e as atualizações da máquina são feitas para você.
Você pode escolher uma das opções padrão de executores hospedados do GitHub ou, se estiver no plano GitHub Team ou GitHub Enterprise Cloud, poderá provisionar um executor com mais núcleos ou um executor alimentado por um processador de GPU. Essas máquinas são chamadas de "executor avançado." Para saber mais, confira Executores avançados.
O uso de executores hospedados em GitHub requer acesso à rede com velocidades de upload e download de pelo menos 70 quilobits por segundo.
Imagens do executor
O GitHub mantém o próprio conjunto de imagens de VM para nossos executores hospedados padrão. Isso inclui as imagens para macOS, linux x64 e Windows. A lista de imagens e suas ferramentas incluídas são gerenciadas no repositório actions/runner-images
. Nossas imagens do arm64 são imagens de parceiros e são gerenciadas no repositório actions/partner-runner-images
.
Software pré-instalado para imagens de propriedade do GitHub
As ferramentas de software incluídas em nossas imagens de propriedade do GitHub são atualizadas semanalmente. O processo de atualização leva vários dias, e a lista de programas de software pré-instalados no branch main
é atualizada após o término de toda a implantação.
Os registros de fluxo de trabalho incluem um link para as ferramentas pré-instaladas no executor exato. Para encontrar essas informações no log de fluxo de trabalho, expanda a seção Set up job
. Nessa seção, expanda a seção Runner Image
. O link depois de Included Software
descreverá as ferramentas pré-instaladas no executor que executou o fluxo de trabalho.
Para saber mais, confira Visualizar o histórico de execução do fluxo de trabalho.
Executores hospedados no GitHub incluem as ferramentas integradas padrão do sistema operacional, além dos pacotes listados nas referências acima. Por exemplo, os executores do Ubuntu e do macOS incluem grep
, find
e which
, entre outras ferramentas padrão.
Você também pode exibir uma SBOM (lista de materiais de software) para cada build das imagens de executor do Windows e do Ubuntu. Para saber mais, confira Referência de uso seguro.
Recomendamos usar ações para interagir com o software instalado nos executores. Essa abordagem tem vários benefícios:
- Normalmente, as ações fornecem funcionalidades mais flexíveis, como seleção de versões, capacidade de passar argumentos e parâmetros
- Ela garante que as versões da ferramenta usadas no seu fluxo de trabalho permaneçam as mesmas independentemente das atualizações do software
Se houver uma ferramenta que você deseja solicitar, abra um problema em actions/runner-images. Este repositório também contém anúncios sobre todas as principais atualizações de software nos executores.
Observação
Você também pode instalar um software adicional em executores hospedados no GitHub. Confira Personalizando executores hospedados no GitHub.
Hosts da nuvem usados pelos executores hospedados em GitHub
O GitHub hospeda executores do Linux e Windows nas máquinas virtuais no Microsoft Azure com o aplicativo do executor GitHub Actions instalado. A o aplicativo do executor hospedado no GitHub é uma bifurcação do agente do Azure Pipelines. Os pacotes ICMP de entrada estão bloqueados para todas as máquinas virtuais do Azure. Portanto, é possível que os comandos ping ou traceroute não funcionem. O GitHub hospeda os executores do macOS nos data centers do Azure.
Continuidade do fluxo de trabalho
Se os serviços de GitHub Actions estiverem temporariamente indisponíveis, a execução do fluxo de trabalho será descartada se não tiver sido enfileirada em 30 minutos após ser acionada. Por exemplo, se um fluxo de trabalho for acionado e os serviços de GitHub Actions não estiverem disponíveis por 31 minutos ou mais, a execução do fluxo de trabalho não será processada.
Além disso, se a execução do fluxo de trabalho entrar na fila com sucesso, mas não foi processado por um executor hospedado em GitHub dentro de 45 minutos, a execução do fluxo de trabalho na fila será descartada.
O arquivo etc/hosts
Os executores hospedados pelo GitHub são provisionados com um arquivo etc/hosts
que bloqueia o acesso à rede a vários pools de mineração de criptomoedas e sites mal-intencionados. Hosts como MiningMadness.com e cpu-pool.com são redirecionados para localhost para que não apresentem um risco de segurança significativo.