Note
No momento, não há suporte para executores hospedados no GitHub no GitHub Enterprise Server. Você pode ver mais informações sobre o suporte futuro planejado no GitHub public roadmap.
Sobre as ações de configuração incluídas e o cache da ferramenta do executor
GitHub Actions em GitHub Enterprise Server foi projetado para funcionar em ambientes sem acesso total à internet. Por padrão, os fluxos de trabalho não podem usar ações de GitHub.com e GitHub Marketplace.
A maioria dos dados oficiais criados pelo GitHub é empacotada automaticamente com o GitHub Enterprise Server. No entanto, os executores auto-hospedados sem acesso à Internet exigem alguma configuração para usar as ações actions/setup-LANGUAGE
incluídas, como setup-node
.
As ações actions/setup-LANGUAGE
normalmente precisam ter acesso à Internet para baixar os binários do ambiente necessários no cache de ferramentas do executor. Os executores auto-hospedados sem acesso à internet não podem fazer o download dos binários. Portanto, você deve preencher manualmente o cache de ferramentas no executor.
Você pode preencher o cache da ferramenta do executor, executando um fluxo de trabalho de GitHub Actions no GitHub.com que faz o upload de um cache de ferramenta do executor hospedado em GitHub como um artefato, que você pode transferir e extrair no seu executor auto-hospedado sem conexão à internet.
Note
Só é possível usar um cache de ferramentas do executor hospedado no GitHub em um executor auto-hospedado que tenha uma arquitetura e um sistema operacional idênticos. Por exemplo, se você estiver usando um executor ubuntu-22.04
hospedado no GitHub para gerar um cache de ferramentas, o executor auto-hospedado precisará ser um computador Ubuntu 22.04 de 64 bits. Para obter mais informações sobre os executores hospedados no GitHub, confira "Usar executores hospedados no GitHub".
Pré-requisitos
- Determinar quais ambientes de desenvolvimento seus executores auto-hospedados precisarão. O exemplo a seguir demonstra como preencher um cache de ferramentas para a ação
setup-node
usando o Node.js versões 14 e 16. - Acesso a um repositório no GitHub.com que pode ser usado para executar um fluxo de trabalho.
- Acesso ao sistema de arquivos do executor auto-hospedado para preencher a pasta de cache da ferramenta.
Preencher o cache de ferramentas para um executor auto-hospedado
-
Em GitHub.com, acesse um repositório que você pode usar para executar um fluxo de trabalho de GitHub Actions.
-
Crie um arquivo de fluxo de trabalho na pasta
.github/workflows
do repositório que carrega um artefato que contém o cache de ferramentas do executor hospedado no GitHub.O exemplo a seguir demonstra um fluxo de trabalho que carrega o cache de ferramentas para um ambiente Ubuntu 22.04, usando a ação
setup-node
com o Node.js versões 14 e 16.name: Upload Node.js 14 and 16 tool cache on: push jobs: upload_tool_cache: runs-on: ubuntu-22.04 steps: - name: Clear any existing tool cache run: | mv "${{ runner.tool_cache }}" "${{ runner.tool_cache }}.old" mkdir -p "${{ runner.tool_cache }}" - name: Setup Node 14 uses: actions/setup-node@v4 with: node-version: 14.x - name: Setup Node 16 uses: actions/setup-node@v4 with: node-version: 16.x - name: Archive tool cache run: | cd "${{ runner.tool_cache }}" tar -czf tool_cache.tar.gz * - name: Upload tool cache artifact uses: actions/upload-artifact@v3 with: path: ${{runner.tool_cache}}/tool_cache.tar.gz
-
Faça o download do artefato do cache da ferramenta da execução do fluxo de trabalho. Para ver instruções sobre como baixar artefatos, confira "Fazer o download de artefatos do fluxo de trabalho".
-
Transfira o artefato de cache das ferramentas para o seu executor hospedado e extraia-o para o diretório de cache das ferramentas locais. O diretório de cache de ferramenta padrão é
RUNNER_DIR/_work/_tool
. Se o executor ainda não processou nenhum trabalho, talvez seja necessário criar os diretórios_work/_tool
.Após extrair o artefato de cache da ferramenta carregado no exemplo acima, você deve ter uma estrutura de diretório no seu executor auto-hospedado semelhante ao exemplo a seguir:
RUNNER_DIR ├── ... └── _work ├── ... └── _tool └── node ├── 14.21.3 │ └── ... └── 16.16.0 └── ...
O executor auto-hospedado sem acesso à Internet já conseguirá usar a ação setup-node
. Se você tiver problemas, certifique-se de ter preenchido o cache da ferramentas correto para seus fluxos de trabalho. Por exemplo, caso você precise usar a ação setup-python
, preencha o cache de ferramentas com o ambiente do Python que deseja usar.