Skip to main content

Usar os executores auto-hospedados em um fluxo de trabalho

Para usar executores auto-hospedados em um fluxo de trabalho, você pode usar as etiquetas para especificar o tipo de executor para uma trabalho.

Observação: no momento, não há suporte para os executores hospedados no GitHub no GitHub Enterprise Server. Você pode ver mais informações sobre o suporte futuro planejado no GitHub public roadmap.

Para obter informações sobre como criar rótulos personalizados e padrão, confira "Como usar rótulos com executores auto-hospedados".

Usar os executores auto-hospedados em um fluxo de trabalho

As etiquetas permitem que você envie trabalhos do fluxo de trabalho para tipos específicos de executores auto-hospedados, com base em suas características compartilhadas. Por exemplo, se o seu trabalho exigir um componente de hardware específico ou um pacote de software, você poderá atribuir uma etiqueta personalizada a um executor e, em seguida, configurar seu trabalho para ser executado somente em executores com essa etiqueta.

Para especificar um executor auto-hospedado para seu trabalho, configure runs-on no arquivo de fluxo de trabalho com rótulos do executor auto-hospedado.

Todos os executores auto-hospedados têm o rótulo self-hosted. Se você só usar esse rótulo, isso selecionará qualquer executor auto-hospedado. Para selecionar os executores que atendem a determinados critérios, como sistema operacional ou arquitetura, recomendamos fornecer uma matriz de rótulos que começa com self-hosted (isso precisa ser listado primeiro) e, em seguida, inclui rótulos adicionais, conforme necessário. Quando você especificar uma matriz de rótulos, os trabalhos serão colocados na fila nos executores que têm todos os rótulos especificados.

Embora o rótulo self-hosted não seja necessário, recomendamos fortemente especificá-lo ao usar executores auto-hospedados para garantir que o seu trabalho não especifique acidentalmente nenhum executor atual ou futuro hospedado no GitHub.

Para obter mais informações, confira "Sintaxe de fluxo de trabalho do GitHub Actions".

Usar etiquetas-padrão para rotear tarefas

Um executor auto-hospedado recebe automaticamente certas etiquetas ao ser adicionado a GitHub Actions. Elas são usadas para indicar seu sistema operacional e sua plataforma de hardware:

  • self-hosted: rótulo padrão aplicado a todos os executores auto-hospedados.
  • linux, windows ou macOS: aplicado, dependendo do sistema operacional.
  • x64, ARM ou ARM64: aplicado, dependendo da arquitetura de hardware.

Você pode usar o YAML do seu fluxo de trabalho para enviar trabalhos para uma combinação dessas etiquetas. Neste exemplo, um executor auto-hospedado que corresponde a todas as três etiquetas será elegível para executar a o trabalho:

runs-on: [self-hosted, linux, ARM64]
  • self-hosted – Execute este trabalho em um executor auto-hospedado.
  • linux – Use apenas um executor baseado em Linux.
  • ARM64 – Use apenas um executor baseado no hardware ARM64.

As etiquetas-padrão são fixas e não podem ser alterados ou removidos. Considere usar etiquetas personalizadas caso precise de mais controle sobre o roteamento de trabalhos.

Usar etiquetas personalizadas para rotear trabalhos

Você pode criar etiquetas personalizadas e atribuí-las aos seus executores auto-hospedados a qualquer momento. As etiquetas personalizadas permitem que você envie trabalhos para determinados tipos de executores auto-hospedados, com base no modo como como são rotulados.

Por exemplo, se você tiver um trabalho que exige um tipo específico de hardware de elementos gráficos, crie um rótulo personalizado chamado gpu e atribua-o aos executores que têm o hardware instalado. Um executor auto-hospedado que corresponde a todas as etiquetas atribuídas será elegível para executar o trabalho.

Este exemplo mostra um trabalho que combina etiquetas-padrão e etiquetas personalizadas:

runs-on: [self-hosted, linux, x64, gpu]
  • self-hosted – Execute este trabalho em um executor auto-hospedado.
  • linux – Use apenas um executor baseado em Linux.
  • x64 – Use apenas um executor baseado no hardware x64.
  • gpu – esse rótulo personalizado foi atribuído manualmente aos executores auto-hospedados com o hardware de GPU instalado.

Esses rótulos operam cumulativamente. Portanto, um executor auto-hospedado precisa ter todos os quatro rótulos para estar qualificado a processar o trabalho.

Precedência de encaminhamento para executores auto-hospedados

Ao encaminhar um trabalho para um executor auto-hospedado, o GitHub procura um executor que corresponde aos rótulos runs-on do trabalho:

  • GitHub primeiro procura um executor no nível do repositório, em seguida, no nível da organização e, por fim, no nível da empresa.
  • Se o GitHub encontrar um executor online e ocioso em determinado nível que corresponde aos rótulos runs-on do trabalho, o trabalho será atribuído e enviado ao executor.
    • Se o executor não pegar a tarefa atribuída em de 60 segundos, o trabalho entrará na fila de todos os níveis e irá esperar que um executor correspondente de qualquer nível fique on-line e pegue o trabalho.
  • Se GitHub não encontrar um executor on-line e inativo em qualquer nível, o trabalho entrará na fila de todos os níveis e irá esperar que um executor correspondente de qualquer nível fique on-line e pegue o trabalho.
  • Se o trabalho permanecer na fila por mais de 24 horas, o trabalho falhará.