Как настроить дистрибутивную сборку и рабочий процесс производственного развертывания для моего серверного приложения Node.js? (API NestJS)?
Мой текущий рабочий процесс:
- Зафиксировать изменения в
production
ветке - Рабочий сервер с
pm2
автоматически извлекает изменения из этого репозитория. - Автоматический
npm install
на prod-сервере. - Автоматический
npm run build
на prod-сервере. - Автоматический
pm2 start
на prod-сервере.
Основная проблема, которую я вижу в этом рабочем процессе, заключается в том, что я запускаю сборку на рабочем сервере. Это означает, что мне нужны все devDependencies на сервере, а также я делаю скачки производительности на сервере при сборке.
Я уже настроил GitHub Actions в своем репозитории, чтобы создать свой код и сохранить его как артефакт при фиксации, но теперь я застрял.
- Должен ли я зафиксировать построенный исходный код в репозитории, а затем использовать хук
pm2
в производстве? - Should I download artifact by some script to production, unpack it and run it? I see few problems here:
/dist
folder (artifact) does not have package.json and assets- Я потерял функциональность Git, поэтому мне нужно всегда удалять старый исходный код и распаковывать новый исходный код.