Настройка автоматического удаления пакетов
Info
Для автоматического удаления пакетов предназначен action. Это идеальное решение для управления хранением пакетов и очистки старых версий прямо из вашего CI/CD-воркфлоу.
Описание
Данный экшен является форком smartsquaregmbh/delete-old-packages.
Экшен получает список пакетов из последних 100 версий с применением фильтров (см. таблицу параметров ниже) и удаляет соответствующие версии.
Warning
Если у вас более 100 версий и ни одна из 100 последних не совпадает с фильтром, ни одна версия не будет удалена!
Входные параметры
| Название | Описание | Обязательное поле | По умолчанию |
|---|---|---|---|
user | Пользователь, владеющий пакетом(пакетами) | ||
organization | Организация, владеющая пакетом(пакетами) | ||
names | Названия пакетов | Да | |
type | Тип пакета (например, npm) | Да | |
semver-pattern | SemVer диапазон версий | ||
version-pattern | Регулярное выражение для версий | ^.+$ | |
keep | Количество версий, которые следует исключить из удаления | 2 | |
token | Токен с необходимыми для удаления пакетов правами | Зависит от пакета | By GitVerse |
dry-run | Устанавливается только для печати логов, без удаления. Если true - безопасный запуск для поиска пакетов по заданным условиям без удаления пакетов, но с логированием | false |
Warning
Некоторые опции нельзя совмещать друг с другом, это приведет к ошибкам:
userиorganization;semver-patternиversion-pattern.
Поддерживаемые типы пакетов
container, maven, npm, pypi, helm, generic, nuget, go*, rpm, debian.
Аутентификация
В зависимости от удаляемого пакета, параметр token может быть необходим. Токен можно сгенерировать в настройках токенов, а также его необходимо добавить в секреты репозитория (Репозиторий → Настройки → Секреты и переменные → Добавить секрет).
Примеры использования
Удаление устаревших версий нескольких пакетов
Удаление устаревших версий пакетов package-1 и package-2 для организации my-organization:
uses: actions/delete-old-packages@v1
with:
organization: my-organization
type: npm
names: |
package-1
package-2Удаление по регулярному выражению
Удаление устаревших версий формата 1.0.0-rc1 пакета package:
uses: actions/delete-old-packages@v1
with:
organization: my-organization
type: npm
version-pattern: "^\\d+\\.\\d+\\.\\d+-rc\\d+$" # Регулярное выражение необходимо экранировать!
names: |
packageУдаление по SemVer диапазону
Удаление устаревших версий со значением ниже 2.x пакета package:
uses: actions/delete-old-packages@v1
with:
organization: my-organization
type: npm
semver-pattern: "<2.x"
names: |
packageУдаление с сохранением последних N версий
Удаление устаревших версий пакета package с сохранением 5 последних версий:
uses: actions/delete-old-packages@v1
with:
organization: my-organization
type: npm
keep: 5
names: |
packageУдаление с использованием токена
Удаление устаревших версий пакета package с токеном GV_ACCESS_TOKEN:
uses: actions/delete-old-packages@v1
with:
token: ${{ secrets.GV_ACCESS_TOKEN }}
organization: my-organization
type: npm
names: |
packageОграничение частоты запросов
Данный экшн для выполнения поиска и удаления пакетов работает с публичным API GitVerse, частота запросов к которому регулируется общими правилами платформы. Если число попыток превысит допустимое количество, работа экшена завершится с ошибкой.