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

Observação: 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

  1. Em GitHub.com, acesse um repositório que você pode usar para executar um fluxo de trabalho de GitHub Actions.

  2. 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
    
  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 "Fazer o download de 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, caso você precise usar a ação setup-python, preencha o cache de ferramentas com o ambiente do Python que deseja usar.