Найти в Дзене

CI/CD сервер на node.js — проект выпускника курса «Разработчик JavaScript»

Статья подготовлена для студентов курса «Разработчик JavaScript» в образовательном проекте OTUS. Важнейшая часть образовательного процесса в OTUS — практическое применение знаний, полученных на занятиях. Именно поэтому последний модуль большинства курсов посвящён выполнению проектной работы. Предлагаем вашему вниманию работу одного из выпускников курса «Разработчик JavaScript» — Дмитрия Переверзы. Дмитрий создал сервис, предназначенный для автоматизации сборки и развёртывания проектов на рабочих площадках. При неудачных сборках проекта происходит автоматический сброс изменений до последнего коммита удачной сборки. Настройка и регистрация Сервер необходимо расположить на сервере с https, иначе не удастся настроить github webhook. Для запуска работы сервиса используем следующую команду: После запуска сервиса можно регистрировать проекты, используя API сервиса. Пример запроса на регистрацию проекта: project — код вашего проекта. Пример запроса на обновление полей проекта Попробуе
Оглавление
Статья подготовлена для студентов курса «Разработчик JavaScript» в образовательном проекте OTUS.

Важнейшая часть образовательного процесса в OTUS — практическое применение знаний, полученных на занятиях. Именно поэтому последний модуль большинства курсов посвящён выполнению проектной работы. Предлагаем вашему вниманию работу одного из выпускников курса «Разработчик JavaScript»Дмитрия Переверзы.

Дмитрий создал сервис, предназначенный для автоматизации сборки и развёртывания проектов на рабочих площадках. При неудачных сборках проекта происходит автоматический сброс изменений до последнего коммита удачной сборки.

Настройка и регистрация

Сервер необходимо расположить на сервере с https, иначе не удастся настроить github webhook. Для запуска работы сервиса используем следующую команду:

-2

После запуска сервиса можно регистрировать проекты, используя API сервиса.

-3

Пример запроса на регистрацию проекта:

-4

project — код вашего проекта.

  • git — ссылка на git-репозиторий вашего проекта.
  • notificationEmails — массив email-адресов для оповещения о процессе сборки ваших проектов.
  • privateParam — приватные параметры для подстановки в локальный конфиг вашего проекта.

Пример запроса на обновление полей проекта

Попробуем поменять приватный параметр prodPass и userName:

-5

Обратите внимание, что каждое поле, переданное в updatedParams, полностью заменяет собой существующее значение.

Пример запроса на получение актуального конфига проекта:

-6

Настройка проекта для работы с CI/CD сервисом

В корне подключаемого проекта необходимо создать файл project.conf.json в следующем формате:

-7

Обо всех полях по порядку:

1. name — название вашего проекта.

2. code — код проекта (его указываем для получение конфига в /project).

3. targets — здесь указываем массив целевых веток для сборки (за ними и будет следить сервис).

Поля для targets:

1. branch — ветка проекта, изменения которой нужно отслеживать.

2. deploy — данные для подключения к удалённому серверу, на котором будет происходить деплой. В deploy.ssh помимо обычных данных подключения можно указать приватные параметры. Указывая параметр в формате #paramName#, мы скрываем данные подключение из публичного доступа. Для установки значений этих параметров воспользуйтесть полем privateParam при регистрации проекта в системе.

3. deploy.command — команда для запуска cборки и деплоя проекта.

4. testCommand — команда для запуска тестов на проекте (опционально).

Данный конфиг нужно занести под git.

Настройка webhook на github.com

На странице настроек репозитория указываем url адрес CI/CD сервера на роут /webhook:

-8

При выполнении всех условий настроек проекта при обновлении нужной ветки вашего репозитория вы получите инструмент автоматической сборки ваших проектов.

Ознакомиться с подробностями проекта и его исходным кодом вы можете по ссылке на репозиторий Дмитрия Переверзы. Чтобы попасть в следующую группу курса «Разработчик JavaScript», пройдите вступительное тестирование.