Embora os runners do GitHub Actions cubram uma ampla variedade dos ambientes de execução mais comuns e sejam os mais rápidos para começar, às vezes as equipes precisam gerenciar runners auto-hospedados. Isso acontece, por exemplo, quando a política da organização permite apenas implantações em uma infraestrutura privada hospedada dentro do próprio perímetro de segurança da organização. Nesses casos, as equipes podem usar o runner auto-hospedado para GitHub Actions** da Philips**, um módulo Terraform que provisiona runners customizados em instâncias spot da AWS EC2. O módulo também cria um conjunto de Lambdas que lida com o gerenciamento de ciclo de vida (aumento e redução de escala) desses runners. Em nossa experiência, esta ferramenta simplifica muito o provisionamento e gerenciamento de runners auto-hospedados do GitHub Actions. Uma alternativa para equipes que usam Kubernetes é o actions-runner-controller.
Apesar dos executores do GitHub Actions atenderem a uma enorme variedade dos runtimes mais comuns, algumas vezes é necessário algo mais específico para um caso de uso individual, isto é, o runtime de uma linguagem menos comum ou uma configuração de hardware singular. É nesse momento que um executor auto-hospedado é necessário. Philips's self-hosted GitHub runner é um módulo de Terraform que permite criar executores personalizados em instâncias spot do AWS EC2. Como um pouco do gerenciamento de ciclo de vida do GitHub Actions se perde quando você mesmo hospeda seus executores, o módulo também cria um conjunto de Lambdas para esse fim. Eles fazem o serviço pesado de escalar os executores para aumentar ou abaixar o processamento, conforme necessário. Isso ajuda a administrar os custos, e permite tornar os executores efêmeros, uma boa prática para melhorar a reprodutibilidade e a segurança. Se você precisa hospedar seus executores, há muitas coisas que podem ser esquecidas ao se desenvolver esse serviço do zero. Em vez disso, procure ferramentas como essa.