Esta versão do GitHub Enterprise foi descontinuada em 2021-09-23. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, melhorar a segurança e novos recursos, upgrade to the latest version of GitHub Enterprise. Para ajuda com a atualização, contact GitHub Enterprise support.

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.

Observação: GitHub Actions estava disponível para GitHub Enterprise Server 2.22 como um beta limitado. O beta terminou. GitHub Actions está agora geralmente disponível em GitHub Enterprise Server 3.0 ou posterior. Para obter mais informações, consulte as observações sobre a versão GitHub Enterprise Server 3.0.


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

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.

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 poder 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@v2
            with:
              node-version: 10.x
          - name: Setup Node 12
            uses: actions/setup-node@v2
            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.