Angular Cli app continuous deployment как правильно?
Приветствую!
Разрабатываю приложение на Angular используя Angular Cli, в качестве бэкенда приложение на express.
Есть дроплет на DigitalOcean с настроенным сервером и репозиторий на BitBucket
Структура проекта проста:
- src (файлы Angular)
- server (серверное приложение на express)
Директория куда Angular Cli складывает файлы при ng build --prod: server/public (вместо дефолтной dist)
Я вижу два решения для запуска на :
1) Делать пуш в репозиторий (без папки server/public), далее клонировать весь проект на продакшн сервере, далее устанавливать все зависимости, делать сборку angular cli и запускать приложение express
2) Просто делать сборку проекта на локальной машине, копировать на дроплет только папку server, далее устанавливать только те зависимости, что нужны для приложения на express и запускать его
При этом хочется все автоматизировать с помощью какого-то скрипта
Второй путь мне кажется более минималистичным и привлекательным (меньше ненужных файлов на продакшн сервере, меньше зависимостей, меньше запускаемых там процессов), но я не встречал ни одного туториала по такому типу настройки. Возможно я не вижу каких-то подводных камней в это пути?!
Я новичок в этом деле, не судите строго:) Хочу мнение опытного человека. Спасибо!
Спасибо за ответ!
Почитаю про дженкинс
Я в итоге выбрал первый вариант, нашел фичу в менеджере процессов PM2 - deployment pm2.keymetrics.io/docs/usage/deployment
настроил все в соответствии с их гайдом в файле ecosystem.config.js в корне проекта (его исключил из Git репозитория)
в итоге все просто реализуется командой 'pm2 deploy' и он делает все сам: соединяется с продакшн сервером и запускает там команды - клонирует последнюю версию проекта из репозитория, устанавливает зависимости, собирает angular, перезапускает сервер.