Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

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, você deve primeiro preencher o cache de ferramentas do executor para seus fluxos de trabalho.

Neste artigo

Observação: O suporte de GitHub Actions em GitHub Enterprise Server 2.22 é beta pública limitada. Para revisar os requisitos de armazenamento externo e solicitar acesso ao beta, consulte "Habilitar GitHub Actions e configurar o armazenamento".

Observação: Executores hospedados em GitHub não são atualmente compatíveis com GitHub Enterprise Server. Você pode ver mais informações sobre suporte futuro planejado no Itinerário público do GitHub.

Sobre as ações de configuração incluídas e o cache da ferramenta do executor

O GitHub Actions em GitHub Enterprise Server é projetado para funcionar em ambientes sem acesso à Internet. Por padrão, os fluxos de trabalho não podem usar ações de GitHub.com e GitHub Marketplace.

As maioria das oficiais de autoria de GitHubmais são automaticamente agrupadas com GitHub Enterprise Server. No entanto, os executores auto-hospedados sem acesso à internet precisarão de alguma configuração antes de poderem usar as ações actions/setup-LANGUAGE inclusas como, por exemplo, setup-node.

As ações actions/setup-LANGUAGE normalmente precisam de acesso à internet para fazer o download os binários do ambiente necessário para o 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: Você só pode usar um cache de ferramenta do executor hospedado em GitHub para um executor auto-hospedado que possua um sistema operacional e arquitetura idênticos. Por exemplo, se você estiver usando uma ubuntu-18. 4 do executor hospedado em GitHub para gerar um cache de ferramentas, seu executor auto-hospedado deverá ser uma máquina Ubuntu 18.04 de 64 bits. Para mais informações sobre executores hospedados no GitHub, consulte "Ambientes virtuais para 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 as versões 10 e 12 do Node.js.
  • 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 novo arquivo de fluxo de trabalho na pasta .github/workflows do repositório que faz o upload de um artefato que contém o cache da ferramenta do executor armazenado em GitHub.

    O exemplo a seguir demonstra um fluxo de trabalho que faz o upload do cache da ferramenta para um ambiente do Ubuntu 18.04, usando a ação setup-node com as versões 10 e 12 do Node.js.

    name: Upload Node.js 10 and 12 tool cache
    on: push
    jobs:
      upload_tool_cache:
        runs-on: ubuntu-18.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 10
            uses: actions/setup-node@v1
            with:
              node-version: 10.x
          - name: Setup Node 12
            uses: actions/setup-node@v1
            with:
              node-version: 12.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@v2
            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 obter instruções sobre o download de artefatos, consulte "Fazer download de artefatos de 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 da ferramenta padrão é RUNNER_DIR/_work/_tool. Se o executor ainda não processou nenhum trabalho, você pode precisar 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
                ├── 10.22.0
                │   └── ...
                └── 12.18.3
                    └── ...
    

O seu executor auto-hospedado sem acesso à internet agora deve ser capaz de 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, você deverá preencher o cache de ferramentas com o ambiente do Python que deseja usar.

Esse documento ajudou você?

Privacy policy

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.