Esta versão do GitHub Enterprise foi descontinuada em 2021-09-23. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, melhorar a segurança e novos recursos, upgrade to the latest version of GitHub Enterprise. Para ajuda com a atualização, contact GitHub Enterprise support.

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.

Observação: GitHub Actions estava disponível para GitHub Enterprise Server 2.22 como um beta limitado. O beta terminou. GitHub Actions está agora geralmente disponível em GitHub Enterprise Server 3.0 ou posterior. Para obter mais informações, consulte as observações sobre a versão GitHub Enterprise Server 3.0.


Observação: Executores hospedados em GitHub não são atualmente compatíveis com GitHub Enterprise Server. Você pode ver mais informações sobre suporte futuro planejado no Itinerário público do GitHub.

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.

A sua máquina do executor conecta-se ao GitHub Enterprise Server usando o aplicativo do executor auto-hospedado de GitHub Actions. 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 Enterprise Server 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 "Arquiteturas e sistemas operacionais compatíveis com 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.
  • Fila de execução do fluxo de trabalho - Apenas 500 execuções do fluxo de trabalho podem ser enfileiradas em um segundo intervalo de 10 segundos por repositório. Se a execução de um fluxo de trabalho atingir esse limite, a execução do fluxo de trabalho terminará e falhará em ser concluída.

Continuidade do fluxo de trabalho para executores auto-hospedados

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.

Arquiteturas e 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 ou posterior
  • CentOS 7 ou posterior
  • 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

Arquiteturas

As seguintes arquiteturas de processador são compatíveis com o aplicativo do executor auto-hospedado.

  • x64 - Linux, macOS, Windows.
  • ARM64 - Apenas Linux.
  • ARM32 - Apenas Linux.

Comunicação entre executores auto-hospedados e GitHub

Algumas configurações extras podem ser necessárias para usar ações de GitHub.com com GitHub Enterprise Server ou para usar as ações actions/setup-LANGUAGE com executores auto-hospedados sem acesso à internet. Para obter mais informações, consulte "Comunicação entre os executores auto-hospedados e GitHub".

Comunicação entre executores auto-hospedados e GitHub Enterprise Server

As enquetes dos executores auto-hospedados GitHub Enterprise Server 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 Enterprise Server 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 sua instância do GitHub Enterprise Server.

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ê use apenas executores auto-hospedados com repositórios privados. Isso acontece porque as bifurcações do seu repositório podem potencialmente executar código perigoso na sua máquina de executor auto-hospedada criando um 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.