Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

Sobre executores auto-hospedados

Você pode hospedar seus próprios executores e personalizar o ambiente usado para executar trabalhos nos seus fluxos de trabalho do GitHub Actions.

Neste artigo

Sobre executores auto-hospedados

Executores auto-hospedados oferecem mais controle de hardware, sistema operacional e ferramentas de software do que os executores hospedados pelo GitHub. Com executores auto-hospedados, você pode optar por criar uma configuração de hardware personalizado com mais poder de processamento ou memória para executar trabalhos maiores, software de instalação disponível na sua rede local e escolher um sistema operacional não oferecido por executores hospedados do GitHub. Os executores auto-hospedados podem ser físicos, virtuais, estar em um container, no local ou em uma nuvem.

Você pode adicionar runners auto-hospedados em vários níveis na hierarquia de gerenciamento:

  • Runners em nível de repositório são dedicados a um único repositório.
  • Executores no nível da organização podem processar trabalhos para vários repositórios em uma organização.
  • Runners de nível empresarial podem ser atribuídos a várias organizações em uma conta corporativa.

Your runner machine connects to GitHub using the GitHub Actions self-hosted runner application. O aplicativo de executor do GitHub Actions tem código aberto. Você pode contribuir e arquivar problemas no repositório runner. Quando uma nova versão é lançada, o aplicativo do executor atualiza-se automaticamente quando uma tarefa é atribuída ao executor, ou dentro de uma semana após a liberação, caso o executor não tenha recebido nenhum trabalho.

Um executor auto-hospedado é automaticamente removido de GitHub se não se conectar a GitHub Actions por mais de 30 dias.

Para mais informações sobre instalação e uso de executores auto-hospedados, consulte "Adicionar executores auto-hospedados" e "Usar executores auto-hospedados em um fluxo de trabalho."

Você pode executar fluxos de trabalho nos executores hospedados em GitHub ou em executores auto-hospedados

Os executores auto-hospedados em GitHub oferecem uma maneira mais rápida e simples de executar seus fluxos de trabalho, enquanto os executores auto-hospedados são uma maneira altamente configurável de executar fluxos de trabalho em seu próprio ambiente personalizado.

Executores hospedados no GitHub:

  • Recebe atualizações automáticas para o sistema operacional, pacotes e ferramentas pré-instalados e o aplicativo do executor auto-hospedado.
  • São gerenciados e mantidos por GitHub.
  • Fornece uma instância limpa para cada execução de trabalho.
  • Use minutos grátis no seu plano GitHub, com taxas por minuto aplicadas após exceder os minutos grátis.

Executores auto-hospedados:

  • Recebem atualizações automáticas apenas para o aplicativo do executor auto-hospedado. Você é responsável por atualizar o sistema operacional e todos os outros softwares.
  • Pode usar serviços de nuvem ou máquinas locais pelos quais você já paga.
  • É personalizável para seu hardware, sistema operacional, software e requisitos de segurança.
  • Não é necessário ter uma instância limpa para a execução de cada trabalho.
  • São grátis para usar com GitHub Actions, mas você é responsável pelo custo de manutenção das suas máquinas executoras.

Requisitos para executores auto-hospedados

Você pode usar qualquer máquina como um executor auto-hospedado, desde que ela atenda a estes requisitos:

  • Você pode instalar e executar o aplicativo do executor auto-hospedado na máquina. Para obter mais informações, consulte "Sistemas operacionais compatíveis com os executores auto-hospedados".
  • A máquina pode comunicar-se com GitHub Actions. Para obter mais informações, consulte "Comunicação entre os executores auto-hospedados e GitHub".
  • A máquina tem recursos de hardware suficientes para o tipo de fluxos de trabalho que você planeja executar. O aplicativo do executor auto-hospedado requer apenas recursos mínimos.
  • Se você desejar executar fluxos de trabalho que usam ações do contêiner do Docker ou dos contêineres de serviço, você deverá usar uma máquina Linux e o Docker deve estar instalados.

Limites de uso

Existem alguns limites sobre o uso de GitHub Actions ao usar executores auto-hospedados. Estes limites estão sujeitos a mudanças.

  • Tempo de execução do fluxo de trabalho - Cada execução do fluxo de trabalho é limitada a 72 horas. Se a execução de um fluxo de trabalho atingir esse limite, a execução do fluxo de trabalho será cancelada.
  • Tempo de fila de tarefas - Cada trabalho para executores auto-hospedados pode ser enfileirado por um máximo de 24 horas. Se um executor auto-hospedado não começar a executar a tarefa dentro deste limite, a tarefa será encerrada e não será concluída.
  • Solicitações de API - Você pode executar até 1000 solicitações de API por hora em todas as ações dentro de um repositório. Se excedido, as chamadas de API adicionais falharão, o que pode causar falha nas tarefas.
  • Matriz de vagas - Uma matriz de tarefas pode gerar 256 tarefas no máximo por execução do fluxo de trabalho. Este limite também se aplica a executores auto-hospedados.

Sistemas operacionais compatíveis com executores auto-hospedados

Os sistemas operacionais a seguir são compatíveis com o aplicativo de execução auto-hospedado.

Linux

  • Red Hat Enterprise Linux 7
  • CentOS 7
  • Oracle Linux 7
  • Fedora 29 ou versão posterior
  • Debian 9 ou versão posterior
  • Ubuntu 16.04 ou versão posterior
  • Linux Hortelã 18 ou versão posterior
  • openSUSE 15 ou versão posterior
  • SUSE Enterprise Linux (SLES) 12 SP2 ou versão posterior

Windows

  • Windows 7 64-bit
  • Windows 8.1 64-bit
  • Windows 10 64-bit
  • Windows Server 2012 R2 64-bit
  • Windows Server 2016 64-bit
  • Windows Server 2019 64-bit

MacOS

  • macOS 10.13 (High Sierra) or versão posterior

Comunicação entre executores auto-hospedados e GitHub

As enquetes dos executores auto-hospedados GitHub para recuperar atualizações do aplicativo e verificar se algum trabalho está na fila para processamento. O executor auto-hospedado usa uma enquete longa HTTPS que abre uma conexão com GitHub por 50 segundos e, se nenhuma resposta for recebida, o período de espera se encerra a uma nova enquete é criada. O aplicativo deve estar rodando na máquina para aceitar e executar trabalhos do GitHub Actions.

Você deve garantir que a máquina tenha acesso adequado à rede para comunicar-se com as GitHub URLs listadas abaixo.

github.com
api.github.com
*.actions.githubusercontent.com
codeload.github.com

Se você usar uma lista de endereços IP permitida para a sua a sua organização ou conta corporativa do GitHub, você deverá adicionar o endereço IP do executor auto-hospedado à lista de permissões. Para obter mais informações consulte "Gerenciar endereços IP permitidos para a sua organização" ou "Aplicar as configurações de segurança na sua conta corporativa".

Você também pode usar executores auto-hospedados com um servidor proxy. Para obter mais informações, consulte "Usar um servidor proxy com executores auto-hospedados."

Segurança dos executores auto-hospedados com repositórios públicos

Recomendamos que você não use runners auto-hospedados com repositórios públicos.

Bifurcações do seu repositório público podem potencialmente executar códigos perigosos na sua máquina de executor auto-hospedada, criando uma pull request que executa o código em um fluxo de trabalho.

Este não é um problema com executores hospedados no GitHub, pois cada executor hospedado no GitHub é sempre uma máquina virtual limpa e isolada, que é destruída no final da execução do trabalho.

Os fluxos de trabalho não confiáveis no seu executor auto-hospedado representam riscos de segurança significativos para seu ambiente de rede e máquina, especialmente se sua máquina persistir no ambiente entre os trabalhos. Alguns dos riscos incluem:

  • Programas maliciosos em execução na máquina.
  • Sair do sandbox do executor da máquina.
  • Expor acesso ao ambiente de rede da máquina.
  • Dados persistentes, indesejados ou perigosos na máquina.

Esse documento ajudou você?

Privacy policy

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.