Skip to main content

Configurar o cache de ferramentas em executores auto-hospedados sem acesso à internet

Para usar as ações actions/setup incluídas em executores auto-hospedados sem acesso à Internet, primeiro você precisa popular o cache de ferramenta do executor dos fluxos de trabalho.

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-node usando 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

  1. Em GitHub.com, navegue até um repositório que possa ser usado para executar um fluxo de trabalho GitHub Actions.

  2. Crie um novo arquivo de fluxo de trabalho na pasta .github/workflows do 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-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
    
  3. 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.

  4. 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.