@voximplant/kit-softphone
v1.130.2
Published
## Project setup
Readme
kit-softphone
Project setup
git submodule update --init --recursive
npm installCompiles and hot-reloads for development
npm run serveCompiles and minifies for production
npm run buildRun softphone localy
инструкция - https://voximplant.com/kit/docs/contactcenter/embeddablesoftphone
в файле hosts прописать 127.0.0.1 softphone.voximplant.internal
Lints and fixes files
npm run lintCustomize configuration
Работа с ветками и релизный процесс.
Все написанное ниже на данный момент применимо к проекту софтфона.
Ветки и версии
development - стенд, релиз -dev. версии (1.1.1-dev.13) release - препрод, релиз -rc. версии (1.1.1-rc.13) rc - ветка, в которой собирается финальный релиз для вливания в master master - прод, релиз прод версии (1.1.1)
Подготовка
Для первичной инициализации гит модуля с необходимыми скриптами в директории проекта необходимо выполнить git submodule update --init --recursive
Разработка
Фича-ветки создаются от development, коммиты должны содержать номер вашей задачи, например feat: SC-1000 ... (иначе коммиты не попадут в релиз), открывается МР в development, апрув и мерж по уже существующей логике.
Когда задача проверена на стенде, есть два варианта вливания вашей задачи в release:
Запуск джобы create_mr_into_release на верхнем коммите вашей фича ветки в gitlab. Выбираем ветку в gitlab, на верхнем коммите нажимаем кнопку с пайплайнами, запускаем джобу create_mr_into_release. Джоба собирает --rc ветку, которая состоит только из коммитов, которые относятся к вашей задаче, открывает МР этой ветки в release, который по возможности мержится автоматически. Если в ходе сборки возникли конфликты, то джоба выведет сообщение о том, что необходимо собрать ветку локально и открыть МР (п.2) и завершится с ошибкой.
Запуск скрипта external/collect-commits-into-rc.sh из фича-ветки локально, который соберет --rc ветку из ваших коммитов. Скрипт создает --rc ветку, в нее собираются все коммиты, номер задачи которых совпадает с названием вашей ветки, например SC-666. В процессе сборки могут возникнуть мерж конфликты, которые необходимо решить, затем запушить собранную ветку и открыть МР в release.
После создания --rc ветки существующие коммиты в ней и вашей фича ветке не должны сквошиться или изменяться вручную, правильное создание --rc ветки зависит от этого условия.
Запечатывание
Скрипты для установки, удаления, просмотра периодов код-фриза в проектах добавлены в папке freezePeriods/ проекта node-tools-kit. После запечатывания релиза все МРы в release, которые содержат коммиты, которые относятся к новым (не запечатанным ранее) задачам будут заблокированы до релиза прод версии.
Подготовка к релизу
На верхнем (не автосгенерированном) коммите ветки release запускаем джобу prepare_release, которая выведет список неготовых задач (попали в release, но в ходе проверки на препроде задача была отправлена на доработку и доработки еще не готовы). Коммиты, связанные с этими задачами не попадут в ветку rc для вливания production релиза. Если собрать ветку rc не удалось из-за конфликтов при удалении коммитов, джоба выводит список коммитов, которые необходимо удалить из ветки вручную после чекаута от release, джоба падает.
Релиз
Мержим rc в master, из master автоматически релизится новая прод версия, на верхнем коммите в master запускаем джобу post_release, которая выведет список активных задач, которые есть в development, но не попали в релиз. Она также сбросит rc, release, development до состояния master, коммиты в фича-ветках задач из списка выше необходимо засквошить и заново открыть МР в development с лейблом "Already approved", который должен позволять мержить без аппрува, т.к. эти изменения уже были проверены ранее.
Хотфикс
Коммиты с хотфиксами должны содержать "hotfix" в названии, например "fix: ... [hotfix]", сейчас на этом основывается логика пропуска коммитов в release в период код-фриза, возможно в будущем добавится доп. логика для таких коммитов. Ветку можно создавать от development, процесс работы с development, release такой же, как с обычными ветками, описан выше. Для МРа в master создать ветку от master, черрипикнуть коммиты, которые относятся к хотфиксу.
P.S.: При триггере пайплайна софтфона из kit-api для обновления зависимости, просьба мержить сгенерированную ветку с обновлением также и в release, этот кейс будет автоматизирован в будущем.
