Очистите устаревшие ветки с помощью Github Actions

Очистите устаревшие ветки с помощью 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$




Прежде всего, давайте настроим триггер, когда должно выполняться действие. Это может быть толчок, слияние или любой другой. В моем представлении это действие похоже на генеральную уборку, поэтому я настроил его выполнение по крону раз в неделю каждый понедельник. Для настройки подходящего вам крона могу посоветовать отличный ресурс:


https://crontab.guru


``ямл


на:


расписание:


  • хрон: "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. Но для большей безопасности я рекомендую сначала попробовать действие в тестовом репозитории. И перед первым запуском в реальном репозитории убедитесь, что у вас есть резервная копия на случай, если что-то пойдет не так из-за ошибки.

``ямл


сухой_запуск: ложь


После завершения настройки наслаждайтесь очисткой и забудьте о рутинном ручном управлении устаревшими ветками.



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE