Build and Deploy with CircleCI

Build and deply NodeJS Application with DigitalOcean, Github, and CircleCI.

Introduction

Статья рассчитана на junior и middle специалистов front-end разработки, которые хотят ускорить свои рабочие процессы в разы, и выкладывать (и видеть) все свои изменения сразу после того, как они запушили свой код в репозиторий. В качестве примера, мы рассмотрим простой пример NodeJS проекта, который имеет REST API, WebSocket, и умеет отдавать клиенту .html файлы.

Какие программы я использую в этой статье:

- MacOS, Встроенный терминал MacOS, NodeJS v11.9.0, WebStorm, Ubuntu v16.04.





Рабочее пространство проекта выглядит как:

-  .ts  файлы, которые нужно транспилировать в .js

- сборка проекта в папку `build` (в качестве таск менеджера - Gulp)

Запуск http и ws сервера, раздача статических файлов (html)

- С помощью pm2 наблюдение за файлами, и перезагрузка сервера в случае изменения source кода



Prerequisites

Для начала, нам нужно будет установить Git на компьютер. Скачать, и установить его можно здесь --> https://git-scm.com/

Если вы пользуетесь MacOS, или Linux подобными системами, то bash терминал вам доступен сразу, и можете перейти к следующем пункту.

Пользователям Windows-based системами, советую обратить внимание на:

1) Cmder -> https://cmder.net/

2) Либо воспользоваться Git Bash терминалом, который у вас появился сразу после того как вы установили Git (если вы конечно выбрали полную версию).



Step #1 Create Git repository How to create Git repository

1) Создадим папку для нашего проекта на компьютере, например на /Users/<username>/Documents/projects/deploy-project, где deploy-project это название корневой папки с проектом.

Переходим в корневую папку нашего диска

cd

cd (change directory) это команда для смены текущий активной директории. С помощью нее мы можем осуществлять навигацию по файловой системе программы.

Дальше заходим в нашу папку со всеми проектами (здесь предполагается, что вы уже создали папку projects)

cd /Users/Andrew/Documents/projects

Создадим нашу папку с проектом:

mkdir deploy-project

mkdir (make directory) - команда, которая создает папку в соответствие с указанным параметром.

Step #2 Create DigitalOcean account

BlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlabla

BlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlabla

Step #3 Install NodeJS 

BlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlabla

BlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlabla

Step #4 Create CircleCI account

BlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlabla

BlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlabla

Step #5 Create Base NodeJS Application

BlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlabla

BlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlabla

Step #6 Configure nginx

BlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlabla

BlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlablaBlabla

Step #7 Set up pm2 for managing NodeJS Application

Conclusion

  • Slider

You may also like

  • Slider
  • Slider
2 comments

John Doe

Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non | numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.

Reply