Visão geral dos GitHubexecutores hospedados
Os runners são as máquinas responsáveis por executar trabalhos em um GitHub Actions fluxo de trabalho. Por exemplo, um executor pode clonar seu repositório localmente, instalar software de teste e executar comandos que avaliam seu código.
GitHub fornece corredores que você pode usar para executar seus trabalhos ou pode [hospedar seus próprios corredores](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners). Com exceção dos executores de CPU única, cada executor hospedado por GitHub é uma nova máquina virtual (VM) hospedada por GitHub. Processos de CPU única são hospedados em um contêiner em uma VM compartilhada—consulte [AUTOTITLE](/actions/reference/runners/github-hosted-runners#single-cpu-runners).
Cada runner vem com o aplicativo runner e outras ferramentas pré-instaladas. Os runners hospedados GitHub estão disponíveis com Ubuntu Linux, Windows ou macOS. Quando você utiliza um GitHubrunner hospedado, a manutenção e as atualizações do computador ficam a cargo do sistema.
Você pode escolher uma das opções de executor hospedado padrão GitHub ou, se estiver no plano GitHub Team ou GitHub Enterprise Cloud, pode provisionar um executor com mais núcleos, ou um executor alimentado por um processador GPU. Esses computadores são chamados de "executor avançado". Para obter mais informações, consulte Executores avançados.
Executores avançados também dá suporte a imagens personalizadas, que permitem criar e gerenciar suas próprias imagens de VM pré-configuradas. Para obter mais informações, consulte [Imagens personalizadas](#custom-images).
O uso GitHubde executores hospedados requer acesso à rede com pelo menos 70 quilobits por segundo de carregamento e velocidades de download.
Observação
Os minutos de direito para executores hospedados no GitHub não estão disponíveis para contas de usuário gerenciadas. Os Enterprise Managed Users que desejarem contribuir para repositórios em organizações das quais não são membros podem criar um fork no repositório da organização e depois abrir uma solicitação de pull direcionada ao repositório da organização. Isso executa os fluxos de trabalho nos executores hospedados no GitHub da organização. Para obter mais informações, consulte [AUTOTITLE](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users).
Imagens do executor
GitHub mantém nosso 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`](https://github.com/actions/runner-images). Nossas imagens do arm64 são imagens de parceiros e são gerenciadas no repositório [`actions/partner-runner-images`](https://github.com/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.
GitHubOs executores hospedados incluem as ferramentas padrão internas do sistema operacional, além dos pacotes listados nas referências mencionadas 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 software adicional em executores hospedados GitHub. Confira Personalizando executores hospedados no GitHub.
- Embora a virtualização aninhada seja tecnicamente possível ao usar runners, ela não é oficialmente compatível. Qualquer uso de VMs aninhadas é experimental e feito por sua conta e risco, não oferecemos garantias sobre estabilidade, desempenho ou compatibilidade.
Imagens personalizadas
As imagens personalizadas permitem que você comece com uma GitHubimagem base fornecida e crie sua própria imagem de VM personalizada de acordo com suas necessidades de fluxo de trabalho. Com imagens personalizadas, você pode:
- Crie imagens de VM personalizadas usando a sintaxe YAML do fluxo de trabalho existente.
- Pré-configurar ambientes com ferramentas, patches de segurança e dependências aprovados antes do início dos fluxos de trabalho.
- Crie ambientes base consistentes e validados em todos os builds.
As imagens personalizadas podem incluir código de repositório, imagens de contêiner, binários, certificados e outras dependências para criar um ambiente de build consistente entre fluxos de trabalho. Isso ajuda você a obter controle sobre sua cadeia de suprimentos. Eles ajudam a reduzir o tempo de instalação, melhorar o desempenho do build e fortalecer a segurança reduzindo o vetor de ataque de superfície em suas imagens. Os administradores também podem aplicar políticas para gerenciar versões de imagem, retenção e idade para atender aos requisitos de conformidade e segurança organizacional.
As imagens personalizadas só podem ser usadas com executores avançados. Os trabalhos que utilizam imagens personalizadas são cobrados pelas mesmas tarifas por minuto que esses executores. O armazenamento de imagens personalizadas é tarifado e medido através do GitHub Actions armazenamento. Para saber mais, confira Cobrança do GitHub Actions.
Para começar a usar imagens personalizadas, consulte Usando imagens personalizadas.
Hosts de nuvem usados por GitHub executores hospedados
GitHub hospeda executores linux e Windows em máquinas virtuais em Microsoft Azure com o aplicativo GitHub Actions runner instalado. O aplicativo GitHub-hosted runner é uma ramificaçã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.
GitHub hospeda corredores macOS em data centers 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 tiver sido enfileirada com êxito, mas não tiver sido processada por um runner hospedado dentro de 45 minutos, então a execução do fluxo de trabalho enfileirada 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.