Armazenando dependências em cache para compilações mais rápidas
Acelere os fluxos de CI armazenando dependências e artefatos de compilação em cache com a ação actions/cache, chaves e chaves de restauração.
Armazenando dependências em cache para compilações mais rápidas é uma aula grátis de CI/CD with GitHub Actions & DevOps Pipelines no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de CI/CD with GitHub Actions & DevOps Pipelines, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de CI/CD with GitHub Actions & DevOps Pipelines inclui 4 aulas no total.
O custo de reinstalar
A maior parte do tempo da integração contínua é gasta baixando e instalando as mesmas dependências em cada execução. O armazenamento em cache as mantém entre as execuções para que as compilações seguintes reutilizem o trabalho, muitas vezes reduzindo significativamente o tempo do fluxo.
A ação de cache
O GitHub fornece actions/cache. Você informa um caminho para armazenar em cache e uma chave que identifica a entrada do cache. Quando há um acerto, o caminho é restaurado; caso contrário, ele é salvo após a tarefa.
- uses: actions/cache@v4
with:
path: ~/.npm
key: npm-${{ hashFiles('package-lock.json') }}Projetando uma boa chave
A chave deve mudar apenas quando o conteúdo armazenado em cache também precisar mudar. Calcular o hash do arquivo de bloqueio é ideal: um novo arquivo de bloqueio significa novas dependências, então uma nova entrada de cache é criada.
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}Chaves de restauração
restore-keys fornece prefixos de reserva. Se a chave exata não for encontrada, a ação restaura o cache mais recente cuja chave começa com um prefixo, proporcionando uma inicialização parcial já preparada.
restore-keys: |
${{ runner.os }}-npm-Acerto ou falha do cache
Quando há uma correspondência exata de chave, ocorre um acerto do cache e o caminho é restaurado. Quando há uma falha, a tarefa é executada normalmente e o cache é salvo no final usando a chave principal, pronto para a próxima vez.
Armazenamento em cache integrado à configuração
As ações de configuração das linguagens já incluem armazenamento em cache. Para Node, setup-node com cache: npm gerencia o cache de dependências para você, sem necessidade de uma etapa de cache separada.
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npmO que armazenar em cache
Armazene em cache os diretórios de download do gerenciador de pacotes, e não o node_modules instalado, quando possível, porque os caches de download são portáteis e a etapa de instalação ainda verifica a integridade.
- Node:
~/.npm - Python: cache do pip
- Java:
~/.m2ou caches do Gradle
Escopo e limites do cache
Os caches têm escopo por ramo, com reserva para o ramo padrão, e possuem um limite de tamanho por repositório. Caches não utilizados são removidos com o tempo, portanto projete chaves que mudem de maneira previsível.
Evitando caches desatualizados
Se sua chave nunca mudar, você poderá fornecer dependências desatualizadas. Sempre associe a chave ao hash do arquivo de bloqueio para que as atualizações invalidem o cache automaticamente.
Matriz e OS nas chaves
Em compilações matriciais entre sistemas operacionais ou versões, inclua runner.os e a versão na chave para que cada variante tenha seu próprio cache correto, sem conflitos.
key: ${{ runner.os }}-node20-${{ hashFiles('package-lock.json') }}Medindo o ganho
Compare a duração das tarefas antes e depois do armazenamento em cache e observe o indicador de acerto do cache nos registros. Uma taxa de acerto consistentemente baixa indica uma chave que muda com frequência excessiva.
Verificação rápida
Teste sua compreensão sobre o armazenamento em cache de dependências.
Revisão
Você acelerou a integração contínua com o armazenamento em cache de dependências: a ação actions/cache com uma chave baseada no hash do arquivo de bloqueio e uma alternativa de reserva restore-keys, o cache integrado às ações de configuração, a escolha do que armazenar em cache, a inclusão do sistema operacional e da versão nas chaves matriciais e a prevenção de caches desatualizados associando a chave ao arquivo de bloqueio.
Perguntas Frequentes
A aula “Armazenando dependências em cache para compilações mais rápidas” é grátis?
Sim — o texto completo de “Armazenando dependências em cache para compilações mais rápidas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de CI/CD with GitHub Actions & DevOps Pipelines, atualize para CoddyKit PRO. O curso de CI/CD with GitHub Actions & DevOps Pipelines inclui 4 aulas no total.
O que vou aprender em “Armazenando dependências em cache para compilações mais rápidas”?
Acelere os fluxos de CI armazenando dependências e artefatos de compilação em cache com a ação actions/cache, chaves e chaves de restauração. Você pratica CI/CD with GitHub Actions & DevOps Pipelines com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar CI/CD with GitHub Actions & DevOps Pipelines?
Nenhuma experiência prévia é necessária. CI/CD with GitHub Actions & DevOps Pipelines no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Armazenando dependências em cache para compilações mais rápidas”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de CI/CD with GitHub Actions & DevOps Pipelines?
Sim. Cada aula de CI/CD with GitHub Actions & DevOps Pipelines inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Acionadores e eventos de fluxos de trabalho
- Execução de testes com GitHub Actions
- Análise estática e verificações de qualidade do código
- Armazenando dependências em cache para compilações mais rápidas