Улучшите рабочий процесс проекта с помощью этих автоматизаций конвейеров bitbucket/github actions — ClickPesa way


Улучшите рабочий процесс вашего проекта с помощью этих автоматизаций конвейеров bitbucket/github actions — способ ClickPesa

Введение

Bitbucket Pipelines — это служба непрерывной доставки, которая помогает вам быстро создавать и отправлять программное обеспечение.

Вы можете использовать Pipelines для автоматизации создания и тестирования ваших программных проектов, чтобы вашей команде было проще предоставлять новые функции и обновления в срок.

Конвейеры Bitbucket — это мощный инструмент для автоматизации. Но если вы не знаете, что это такое и как их использовать, они могут быть довольно пугающими. Мы используем конвейеры уже некоторое время и узнали кое-что о том, как заставить их работать на нас. Теперь мы хотим поделиться этими знаниями с вами, чтобы вы могли улучшить рабочий процесс вашего проекта! — ( Узнайте больше о конвейерах bitbucket )

Проблемы

Мы не просто создали ветви развертывания и автоматизировали рабочий процесс, сначала мы столкнулись с проблемами,

  1. Развертывание в одной ветке позволяет развертывать непроверенный контент непосредственно в продакшен. Эти тесты включают внутреннее и внешнее тестирование, что приводит к публикации в продакшене баговых функций.
  2. Управление командой разработчиков, работающих над одним проектом и вносящих изменения в одну и ту же ветку.
  3. После создания нескольких ветвей развертывания, когда разработчик вносил изменения, ему приходилось вручную объединять эти изменения в каждую ветвь развертывания, что увеличивало количество человеческих ошибок во всем процессе развертывания.

После всех этих проблем и в связи с ростом команды разработчиков мы пришли к одному решению. Автоматизировать весь процесс разработки. Этот процесс начинается с того момента, когда разработчики вносят изменения в первую ветку развертывания (develop), в ветку предварительного просмотра (staging), в производственную ветку и в релиз программного обеспечения.

Решение

Для решения первой задачи мы создали три различные ветви развертывания, которые работают в разных средах. Ветвь Develop развертывается в среду Develop для внутреннего тестирования.

Ветвь Staging, развертывающаяся в среду Staging для внутреннего и внешнего тестирования, в этой конфигурации среда Staging максимально соответствует Production. Master/Main ветвь, которая развертывается на производстве.

Разработчики создают свои собственные ветки и объединяют изменения в ветку Develop для внутреннего тестирования. Это решило и вторую проблему, поскольку в таком рабочем процессе проще управлять разработчиками.

После создания ветвей развертывания мы применили решение для автоматизации всего процесса от слияния изменений разработчиков в ветвь develop до публикации этих изменений в production с помощью bitbucket pipelines/github actions и Javascript.

Эта автоматизация включает

  1. Запуск автоматизированных модульных тестов в ветке feature
  2. Запуск автоматизированных конечных тестов (e2e тестов) в ветке разработки
  3. Автоматизация создания запросов на вытягивание (подробнее)
  4. Выполнение запланированных конечных тестов (e2e тестов) в ветке staging
  5. Конец дня/запланированные конвейеры/действия, выполняемые ежедневно в 18:00 для запуска e2e тестов, слияния запросов на вытягивание в staging branch, развертывания staging branch и создания запросов на вытягивание в master/main branch
  6. Автоматизированное объединение запросов на вытягивание
  7. Развертывание веток
  8. Отправка автоматических уведомлений в slack рецензентам для ручной проверки перед производственным релизом
  9. Автоматизированное версионирование программного обеспечения
  10. Автоматизированные журналы изменений и документация по выпуску ( Подробнее )

Заключение

После того как мы внедрили ряд этих действий и инструментов в наш существующий рабочий процесс, мы увидели некоторые значительные улучшения. Основные преимущества, которые они дают, на мой взгляд, сводятся к двум моментам.

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

А во-вторых, они сводят ошибки к минимуму, предоставляя обратную связь, когда что-то идет не так.

Оцените статью
Procodings.ru
Добавить комментарий