Skip to content

psvm-dev/CorporationX

 
 

Repository files navigation

CorporationX

Репозиторий для всего проекта. Использует git submodule, чтобы включить все остальные сервисы

Как начать работу?

git clone --recurse-submodules https://github.com/CorporationX/CorporationX

Как поднять БД и другие инструменты локально?

Следуем инструкциям в README в разделе infra. Это отдельный репозиторий, который содержит в себе все инфраструктурные компоненты (БД, Redis, Docker Compose и пр.)

Как вести разработку?

Каждая папка в этом репозитории - это отдельный подрепозиторий, который тоже есть на GitHub. Т.е. user_service - это обычный Git-репозиторий, который попросту включен в большой репозиторий CorporationX в качестве подрепозитория.

CorporationX репозиторий существует лишь для удобства: можно сразу склонировать все необходимые сервисы всего одной командой git clone, которая указана выше.

Каждый подрепозиторий представляет собой отдельный сервис (Java-приложение) в экосистеме CorporationX. Например, user_service - это приложение, которое содержит в себе логику работы с пользователями, project_service - логику работы с проектами и т.д. Соответственно в зависимости от конкретной задачи вы будете работать либо в том, либо в другом сервисе. По сути просто писать там код, как в обычном проекте в IDEA.

Поэтому:

  1. Выкачиваем весь проект CorporationX, используя команду клонирования выше
  2. Из конкретной задачи в Jira определяем, в каком сервисе нужно вести разработку.
  3. Открываем в IDEA папку с этим сервисом
  4. Работаемс!

Как создавать PR?

Каждая команда будет иметь свою собственную master ветку в общем репозитории. Например, команда unicorn шестого потока имеет ветку unicorn-master-stream6, которая содержит весь стабильный код этой команды в определенном сервисе, и именно туда участники должны создавать PR-ы.

Поэтому:

  1. Получаем задачу в Jira
  2. Определяем, в каком сервисе будем вести разработку
  3. Открываем этот сервис в IDEA
  4. Переключаемся на master-ветку СВОЕЙ команды. ЭТО ОЧЕНЬ ВАЖНО. Если вы только начинаете разработку новой задачи, то убедитесь, что переключились на ветку unicorn-master-stream6 или kraken-master-stream8 в зависимости от ваших команды и потока, перед тем, как создать еще одну ветку.
  5. Из данной ветки создаем ветку для вашей конкретной задачи по шаблону, принятому в команде. Например, feature-{номер_задачи} или bugfix-{номер_задачи} в зависимости от того, делаете ли вы новую фичу или чините некоторый баг. ВАЖНО: в названии веток нельзя использовать слово master, иначе github не даст напрямую запушить в эти ветки.
  6. Именно в этой ветке ведем всю разработку
  7. Когда разработка завершена создаем PR из этой ветки в master-ветку вашей команды, из которой изначально и создавали рабочую ветку. Убедитесь, что всегда создаете PR в правильную ветку именно для вашей команды.
  8. Получам аппрув от техлида.
  9. Мержируемся!

Тесты

Каждый PR в этом репозитории обязан содержать unit-тесты на всю вашу логику. Когда команда добавит CI пайплайны на GitHub, то PR-ы с упавшими тестами, будут также отправляться обратно в работу.

Ваш PR должен быть полностью зеленым и покрыт тестами, чтобы получить аппрув. Это обязательное требование.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%