Este artigo descreve o gerenciamento de caches com a interface da Web do GitHub, mas você também pode gerenciá-los:
- Usar a API REST: Confira Pontos de extremidade da API REST para o cache do GitHub Actions.
- Com o subcomando
gh cache
da linha de comando. Confira a Documentação da CLI do GitHub.
Exibir entradas de cache
É possível usar a interface da Web para exibir uma lista das entradas de cache de um repositório. Na lista de cache, é possível ver quanto espaço em disco cada cache está usando, quando os caches foram criados e quando foram usados pela última vez.
-
Em GitHub, acesse a página principal do repositório.
-
No nome do repositório, clique em Ações.
-
Na barra lateral esquerda, na seção "Gerenciamento", clique em Caches.
-
Revise a lista de entradas de cache do repositório.
- Para pesquisar as entradas de cache usadas para um branch específico, clique no menu suspenso Branch e selecione um branch. A lista de cache exibirá todos os caches usados para o branch selecionado.
- Para pesquisar entradas de cache com uma chave de cache específica, use a sintaxe
key: key-name
no campo Filtrar caches. A lista de cache exibirá os caches de todos os branches em que a chave foi usada.
Excluir entradas de cache
Os usuários com acesso write
a um repositório podem usar a interface da Web do GitHub para excluir entradas de cache.
-
Em GitHub, acesse a página principal do repositório.
-
No nome do repositório, clique em Ações.
-
Na barra lateral esquerda, na seção "Gerenciamento", clique em Caches.
-
À direita da entrada de cache que deseja excluir, clique em .
Forçar a exclusão de entradas de cache
Os caches têm restrições de escopo de branch em vigor, o que significa que alguns caches têm opções de uso limitadas. Para obter mais informações sobre as restrições do escopo de cache, confira Referência do cache de dependência. Se caches limitados a um branch específico estiverem usando um excesso de cota de armazenamento, isso poderá fazer com que os caches do branch default
sejam criados e excluídos com alta frequência.
Por exemplo, um repositório pode ter muitas novas solicitações de pull abertas, cada qual com caches próprios restritos a um branch específico. Esses caches podem ocupar a maior parte do armazenamento em cache do repositório em questão. Após um repositório atingir seu volume máximo de armazenamento em cache, a política de remoção de cache criará espaço excluindo os caches na ordem da última data de acesso, da mais antiga para a mais recente. Para evitar a eliminação de cache nessa situação, você pode configurar fluxos de trabalho que excluam caches em uma cadência mais rápida do que a política de remoção de cache. Use a GitHub CLI para excluir caches de branches específicos.
O fluxo de trabalho de exemplo a seguir usa gh cache
para excluir até 100 caches criados por uma ramificação depois que uma pull request é fechada.
Para executar o exemplo a seguir em pull requests entre repositórios ou pull request de forks, acione o fluxo de trabalho com o evento pull_request_target
. Quando você usa pull_request_target
para acionar o fluxo de trabalho, algumas considerações de segurança são necessárias. Para saber mais, confira Eventos que disparam fluxos de trabalho.
name: Cleanup github runner caches on closed pull requests
on:
pull_request:
types:
- closed
jobs:
cleanup:
runs-on: ubuntu-latest
permissions:
actions: write
steps:
- name: Cleanup
run: |
echo "Fetching list of cache keys"
cacheKeysForPR=$(gh cache list --ref $BRANCH --limit 100 --json id --jq '.[].id')
## Setting this to not fail the workflow while deleting cache keys.
set +e
echo "Deleting caches..."
for cacheKey in $cacheKeysForPR
do
gh cache delete $cacheKey
done
echo "Done"
env:
GH_TOKEN: ${{ github.token }}
GH_REPO: ${{ github.repository }}
BRANCH: refs/pull/${{ github.event.pull_request.number }}/merge
Como alternativa, você pode usar a API para listar ou excluir automaticamente todos os caches em sua cadência. Para saber mais, confira Pontos de extremidade da API REST para o cache do GitHub Actions.