Ну, это была неделя, проверяющая код и различные репозитории в компании, похоже, если вы позволите нам, разработчикам, работать в одиночку над проектом, который мы склонны без колебаний продвигать, чтобы освоить и начать запускать производственный код на героку без какого-либо тестирования разработки окружающая обстановка…
Итак, пришло время снова поместить эти репозитории 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 и результаты покрытия.
Все работает, и тесты пройдены и провалены :) очень хорошее место для начала.
Итак, теперь я хочу добавить веб-перехватчики github для каждого слияния в ветке разработки, добавить плагин github и настроить веб-перехватчик в репозитории, и каждое изменение будет генерировать сборку и тестирование, теперь давайте просто создадим, когда будет сделано изменение в разработке ( слияние из функциональной ветки) и сгенерировать тег, если сборка прошла успешно.
Дополнительные ссылки и ресурсы: