Jenkins + JsHint(JsLint) или смотрим метрики javaScript на Jenkins-е

от автора

Здравствуйте. Получил такое задание, в принципе все ясно из названия темы.
О том как я этого достиг, шаг за шагом, будет следующий пост.
Если что не так — критика приветствуется, это было так сказать исследовательское задание, и перед началом работы над ним у меня не было понятия о данном инструменте, зачем он и так д…
В процессе исследования многие вопросы прояснились.

Суть задания поподробней.
Нужно было чтоб в проекте на Jenkins-e отображался график и небольшая статистика по метрикам JavaScript-кода из проекта.
При этом обязательным условием в качестве анализа js-кода было использование только JsHint, тоисть JsLint не проходит.

Начался сбор информации, так как такое слово я услышал впервые. У Jenkins-а есть огромная библиотека плагинов и соответственно кто-то уже задавался данным вопросом. Так что сначала искался Jenkins-plugin.
Плагин был успешно найден, но прикрутить его к серверу мне не получилось.
Вот линк на плагин, там же и есть информация как его прикручивать.
http://www.boxuk.com/labs/jslint-jenkins-plugin/

Дальше поиск меня привел к nodeJs и его плагину(npm) jshint.
Дальше шаг за шагом, что нужно сделать, чтоб получить на Jenkins-е анализ кода с помощью JsHint.

  1. Инсталлируем nodejs
  2. Устанавливаем jshint-npm:
    npm install -g jshint
    Документация:
    https://npmjs.org/package/jshint
  3. Для игнорирования не нужных папок и файлов создаем в root-папке проекта (где лежит pom.xml) файл с названием
    .jshintignore
    к примеру мы хотим проигнорировать все файлы из следующей директории src/main/webapp/resources/js/lib/
    то в файле .jshintignore так и напишем
    src/main/webapp/resources/js/lib/
  4. Файл .jshintignore можно конфигурировать с помощью регулярных выражений «minimatch»
    https://github.com/isaacs/minimatch
  5. Инсталлируем Violation-Plugin для Jenkins, он поддерживает(читает) различные метрики кода в том числе jslint/jshint
    https://wiki.jenkins-ci.org/display/JENKINS/Violations
  6. После инсталляции плагина, пере запускаем Jenkins, заходим в конфигурацию проекта и там находим флажок «violations».
    Открываем и видим, что он уже может прочитать xml-файл с jslint метриками кода.
  7. Ну и наконец самая главная команда, ради которой все эти пляски с бубном затевались.
    Эту команду пишем в конфигурации проекта как «запустить shell-команду».
    jshint ./src/main/webapp/resources/js --jslint-reporter > ./target/jslint.xml
    запускаем ранее установленный jshint-npm как параметр передаем папку с js фалами для анализа, при этом говорим, что нам отчет нужно формировать в стиле jslint, так как наш violation-plugin может читать только jslint-report. и удачно все пишем в файл по указанному пути.
  8. В violation-plugin указываем путь к нашему
    ./target/jslint.xml
  9. Все, готово! Можно запускать и радоваться графиком и статистикой.

Надеюсь кому-то пригодится.
Всех новичков прошу ко мне, буду стараться регулярно что-то писать: j-web-dev.blogspot.com/
P.S. За блог сильно не пинайте, никто профессионалом не рождается. )

ссылка на оригинал статьи http://habrahabr.ru/post/160181/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *