Очистите устаревшие ветки с помощью Github Actions
23 марта 2022 г.Большие команды разработчиков разрабатывают множество функций. В течение жизни репозитория количество устаревших веток может увеличиваться и увеличиваться как снежный ком. Это может регулироваться командными правилами о том, что делать с ветками после слияния и кто должен их удалять. Но, как и при любой ручной операции, иногда об этом кто-то забывает. Так что раз в месяц или два вы должны просматривать просроченные ветки и удалять их.
Мой ум инженера по автоматизации всегда пытается автоматизировать каждую рутинную операцию, подобную этой. Итак, я настроил действие cron, которое очищает старые ветки по шаблону.
Я использовал уже существующее решение от [beatlabs] (https://github.com/beatlabs/delete-old-branches-action), где вы можете настроить удаляемые ветки с помощью регулярного выражения. Посмотрим на комплектацию и опишем ключевые моменты:
``ямл
название: ОЧИСТИТЬ СТАРЫЕ ВЕТКИ
на:
расписание:
- хрон: "0 0 * * 1"
вакансии:
уборка:
Название: Очистить старые ветки
запуски: ubuntu-последняя
шаги:
- название: касса
использует: action/checkout@v2
- имя: чистый
использует: beatlabs/delete-old-branches-action@v0.0.6
с участием:
repo_token: ${{ секреты.GH_TOKEN }}
дата: '2 месяца назад'
сухой_запуск: ложь
удалить_теги: ложь
минимум_тегов: 5
extra_protected_branch_regex: master.|main|develop|^release.|.*_p$
Прежде всего, давайте настроим триггер, когда должно выполняться действие. Это может быть толчок, слияние или любой другой. В моем представлении это действие похоже на генеральную уборку, поэтому я настроил его выполнение по крону раз в неделю каждый понедельник. Для настройки подходящего вам крона могу посоветовать отличный ресурс:
``ямл
на:
расписание:
- хрон: "0 0 * * 1"
После этого определите задание очистки с помощью шагов:
- проверить
- чистый
Checkout довольно прост с actions/checkout@v2
, он выполняет выборку репозитория. Никакой дополнительной настройки не требуется.
У действия Очистить есть несколько важных параметров:
- токен с правами на взаимодействие с репозиторием.
``ямл
repo_token: ${{ секреты.GH_TOKEN }}
- дата - срок давности (в данном примере будут искаться ветки старше 2 месяцев).
``ямл
дата: '2 месяца назад'
- extra_protected_branch_regex - регулярное выражение для защищенных веток.
Этот пример исключает из списка очистки: master, develop, ветки, которые начинаются с «release» и заканчиваются на «_p».
``ямл
extra_protected_branch_regex: master|develop|^release.|._p$
- dry_run - выполняет действие в безопасном режиме. После того, как вы проверите, что все в порядке, переключитесь на false. Но для большей безопасности я рекомендую сначала попробовать действие в тестовом репозитории. И перед первым запуском в реальном репозитории убедитесь, что у вас есть резервная копия на случай, если что-то пойдет не так из-за ошибки.
``ямл
сухой_запуск: ложь
После завершения настройки наслаждайтесь очисткой и забудьте о рутинном ручном управлении устаревшими ветками.
Оригинал