Ну, это была неделя, проверяющая код и различные репозитории в компании, похоже, если вы позволите нам, разработчикам, работать в одиночку над проектом, который мы склонны без колебаний продвигать, чтобы освоить и начать запускать производственный код на героку без какого-либо тестирования разработки окружающая обстановка…

Итак, пришло время снова поместить эти репозитории github в поток git!



Но что мне делать, чтобы мое будущее «я» не пошло на мастер-класс без тестов? Дженкинсу нужно вставать и смотреть.

После некоторых размышлений с использованием Travis-CI не хотелось тратить ежемесячную плату, поэтому я использовал этот готовый к битнам экземпляр jenkins, который можно развернуть на AWS:



После установки вы можете войти в систему с именем пользователя «user» и сгенерированным паролем, который отображается в журналах экземпляра.

В нашем случае нам понадобился плагин nodejs, который вы должны внимательно следовать шагам установки :)



Но скрипт узла запуска у меня не работал, и я вручную установил глобальную корзину мокко, а также установил его в package.json для проверки папки node_modules, что может помочь.

Итак, одна из проблем заключалась в том, что я установил node и npm, используя

sudo apt-get install nodejs npm

что привело к тому, что npm install не имел доступа к папке рабочей области, и сборка завершилась неудачно… та же проблема с установкой mocha, поэтому установите узел правильно



nvm install 4.4.6 //use current version :)

После нескольких попыток я решил использовать узел LTS версии 4.4.6, и все заработало, теперь нам нужно экспортировать результаты теста в формат XML, понятный jenkins.

Нашел эту оболочку mocha, которая генерирует формат XUNIT и результаты покрытия.



stjohnjohnson/jenkins-mocha
jenkins-mocha — обертка корзины для Mocha + Istanbul + Xunit (для Jenkins)github.com



Все работает, и тесты пройдены и провалены :) очень хорошее место для начала.

Итак, теперь я хочу добавить веб-перехватчики github для каждого слияния в ветке разработки, добавить плагин github и настроить веб-перехватчик в репозитории, и каждое изменение будет генерировать сборку и тестирование, теперь давайте просто создадим, когда будет сделано изменение в разработке ( слияние из функциональной ветки) и сгенерировать тег, если сборка прошла успешно.

Дополнительные ссылки и ресурсы: