Observação
No momento, não há suporte para executores hospedados no GitHub Enterprise Server no GitHub.
Sobre as ações de configuração fornecidas e o cache da ferramenta runner
O 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 das ações oficiais criadas por GitHub é automaticamente incluída com 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 de ferramentas do executor executando um fluxo de trabalho GitHub Actions no GitHub.com que carrega o cache de ferramentas de um executor hospedado GitHub como um artefato, que você pode transferir e extrair em seu executor auto-hospedado desconectado pela Internet.
Observação
Você só pode usar o cache de ferramentas de um executor hospedado em GitHub em um executor auto-hospedado que tenha o mesmo sistema operacional e a mesma arquitetura. Por exemplo, se você estiver usando um ubuntu-22.04GitHubexecutor hospedado para gerar um cache de ferramentas, seu executor auto-hospedado deverá ser um computador Ubuntu 22.04 de 64 bits. Para saber mais sobre executores auto-hospedados em GitHub, confira Referência de executores hospedados pelo 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-nodeusando o Node.js versões 14 e 16. - Acesso a um repositório no GitHub.com qual você pode usar 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, navegue até um repositório que possa ser usado para executar um fluxo de trabalho GitHub Actions.
-
Crie um novo arquivo de fluxo de trabalho na pasta
.github/workflowsdo repositório que faz upload de um artefato contendo o cache de ferramentas do executor hospedado em 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-nodecom 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 Baixar 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, se você precisar usar a ação setup-python, precisará preencher o cache de ferramentas com o ambiente Python que deseja usar.