Как мы релизим

🛠
В разработке...

ℹ️
Раздел можно пропустить, если нет поставленной задачи - выпустить релиз

Подготовка предрелиза

Сливаем интересующие изменения в релизную ветку одним коммитом. Конфликты образуются так как в релиз пишутся изменения одним коммитом. Эти команды подправят большинство конфликтов в пользу ветки откуда происходит сливание (как правило из мастера)

git checkout release
git merge -Xtheirs master --squash
git checkout master --theirs .

Проверяем не остались ли конфликты. Как правило конфликты остаются с файлами которые были удалены. Принимаем remote изменения (как правило изменения из master)

git mergetool

Убедиться, что сборка собирается

Бывает такое, что файл удалён в мастере, но как-то просочился в релиз, и ему не хватает зависимостей, так как была реорганизация. Если какие-то файлы не удалились в предыдущем шаге и поэтому сборка выдает ошибки — просто удалям эти файлы физически.

Для cloud:

npm run compile

Для pwa:

npm run build

Залить проект на сервер

npm run deploy:staging

Возможные проблемы

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

export NODE_OPTIONS=--max-old-space-size=8192