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.
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.
Artefatos versus armazenamento em cache de dependência
Artefatos e caches são semelhantes porque permitem armazenar arquivos em GitHub, mas cada recurso oferece casos de uso distintos e eles não podem ser usados de maneira intercambiável.
- Use o cache quando quiser reutilizar arquivos que não são alterados com frequência entre execuções de fluxo de trabalho, como dependências baixadas por um sistema de gerenciamento de pacotes, saídas de build intermediárias ou outros arquivos que são caros para regenerar. Armazenar esses arquivos em cache pode acelerar suas execuções de fluxo de trabalho, embora um trabalho sempre seja capaz de baixar novamente ou regenerar esses arquivos se um cache não estiver disponível.
- Use artefatos quando quiser salvar arquivos produzidos por uma tarefa para usar ou visualizar após o término da execução de um fluxo de trabalho, como binários compilados ou logs de compilação, ou quando quiser transferir arquivos entre tarefas em um fluxo de trabalho.
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.