Sobre o cacheamento de dependências em fluxos de trabalho
As execuções do fluxo de trabalho geralmente reutilizam as mesmas saídas ou dependências baixadas de uma execução para outra. Por exemplo, as ferramentas de gerenciamento de pacotes e de dependência, como, por exemplo, Maven, Gradle, npm e Yarn mantêm uma cache local de dependências baixadas.
Os trabalhos em GitHubexecutores hospedados começam em uma imagem de executor limpo e devem baixar dependências sempre, causando maior utilização de rede, tempo de execução mais longo e aumento do custo. Para ajudar a acelerar o tempo necessário para recriar arquivos como dependências, GitHub você pode armazenar em cache arquivos usados com frequência em fluxos de trabalho.
Observação
Ao usar executores auto-hospedados, os caches de execuções de fluxo de trabalho são armazenados no armazenamento em GitHubnuvem de propriedade. Uma solução de armazenamento de propriedade do cliente só está disponível com GitHub Enterprise Server.
Artefatos versus armazenamento em cache de dependência
Os artefatos são similares, pois fornecem a habilidade de armazenar arquivos em GitHub, mas cada recurso oferece usos diferentes e não podem ser usados de forma intercambiável.
- Use o cache quando quiser reutilizar arquivos que não são alterados com frequência entre trabalhos ou execuções de fluxo de trabalho, como dependências de build de um sistema de gerenciamento de pacotes.
- Use artefatos quando quiser salvar arquivos produzidos por um trabalho a serem exibidos após o fim de uma execução de fluxo de trabalho, como binários internos ou logs de build.
Para obter mais informações sobre artefatos de execução de fluxo de trabalho, confira Armazenar e compartilhar dados com artefatos de fluxo de trabalho.
Segurança do cache
Os caches são compartilhados com base na branch ou na tag usada por uma execução de workflow, não na identidade do workflow ou do job. Consulte Eventos que disparam fluxos de trabalho e a ramificação GITHUB_REF usada para vários acionadores de fluxo de trabalho. Qualquer execução que possa ler um cache restaura seu conteúdo as-is, portanto, você deve tratar arquivos restaurados como entrada não confiável e nunca armazenar segredos ou outros dados confidenciais em um cache.
Fluxos de trabalho não confiáveis podem ler conteúdo sensível do cache, como quando uma execução pull_request de um fork restaura o cache. Caches envenenados podem levar à execução de código em fluxos de trabalho confiáveis. Para limitar o risco de envenenamento de cache, GitHub concede aos fluxos de trabalho executados em resposta a gatilhos de baixa confiança acesso somente de leitura aos caches no escopo da branch padrão.
Para obter detalhes sobre escopo de cache, restrições de acesso e práticas recomendadas para usar caches com segurança, consulte Referência do cache de dependência.
Próximas etapas
Para implementar o cache de dependência em seus fluxos de trabalho, consulte Referência do cache de dependência.