В этой статье описывается управление кэшами с помощью веб-интерфейса GitHub, но вы также можете управлять ими:
- используете REST API; См . раздел AUTOTITLE.
gh cacheС подкоманда из командной строки. См. документацию по интерфейсу командной строки GitHub.
Просмотр записей кэша
Веб-интерфейс можно использовать для просмотра списка записей кэша для репозитория. В списке кэша можно увидеть, сколько дискового пространства используется каждый кэш, когда кэш был создан, а также время последнего использования кэша.
-
На GitHubперейдите на главную страницу репозитория. данных repositories.repositories.actions-tab %} 1. Под именем репозитория щелкните Actions.

-
Просмотрите список записей кэша для репозитория.
- Чтобы найти записи кэша, используемые для определенной ветви, щелкните раскрывающееся меню "Ветвь " и выберите ветвь. В списке кэша отображаются все кэши, используемые для выбранной ветви.
- Чтобы найти записи кэша с определенным ключом кэша, используйте синтаксис
key: key-nameв поле "Кэши фильтров". В списке кэшей будут отображаться кэши из всех ветвей, где использовался ключ.

Удаление записей кэша
Пользователи с write доступом к репозиторию могут использовать веб-интерфейс GitHub для удаления записей кэша.
-
На GitHubперейдите на главную страницу репозитория. данных repositories.repositories.actions-tab %} 1. На GitHubперейдите на главную страницу репозитория.
-
Справа от записи кэша, которую вы хотите удалить, щелкните .

Принудительное удаление записей кэша
Кэши имеют ограничения области ветви, что означает, что некоторые кэши имеют ограниченные параметры использования. Дополнительные сведения об ограничениях области кэша см. в разделе Справочник по кэшированию зависимостей. Если кэши, ограниченные определенной ветвью, используют большую квоту хранилища, это может привести к созданию и удалению кэшей из default ветви с высокой частотой.
Например, репозиторий может открывать множество новых запросов на вытягивание, каждый из которых содержит собственные кэши, ограниченные этой ветвью. Эти кэши могут занять большую часть хранилища кэша для этого репозитория. После достижения максимального хранилища кэша политика вытеснения кэша создаст пространство, удалив кэши в порядке последней даты доступа, начиная с последней до последней. Чтобы предотвратить регулирование кэша при этом, можно настроить рабочие процессы для удаления кэшей быстрее, чем политика вытеснения кэша. Для удаления кэшей для определенных ветвей можно использовать GitHub CLI.
В следующем примере рабочий процесс используется gh cache для удаления до 100 кэшей, созданных ветвью после закрытия запроса на вытягивание.
Чтобы запустить следующий пример в запросах на вытягивание между репозиториями или запросах на вытягивание из вилок, можно активировать рабочий процесс с событием pull_request_target . Если вы используете pull_request_target для активации рабочего процесса, следует учитывать вопросы безопасности. Дополнительные сведения см. в разделе События, инициирующие рабочие процессы.
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
Кроме того, вы можете использовать API для автоматического перечисления или удаления всех кэшей в собственном темпе. Дополнительные сведения см. в разделе Конечные точки REST API для кэша GitHub Actions.