<commit_before># buld failed conditions
Решение для выставление статусов сборки ct(continues test) на основе дополнительных
проверок, основанных на результатах проверок unit тестов, линтеров и т.д.
Архитектура решения подразумевает модульность, которая должна позволить использовать
различные обработчики, выносить их в отдельные npm пакеты, развивать и поддерживать
как отдельные приложения.
![Flow](./img/flow.jpg)
![Before](./img/before.jpg)
![After](./img/after.jpg)

##Модули
###Teamcity
Решение для выставления статуса сборки по мержу в ветку как аналог встроенному
в teamcity средству failed conditions. Решение будет основано на механизме интеграции
с teamcity - service messages, которое позволяет делать много вещей в том числе выстав
ление статуса сборки и причины падения.

###Eslint интеграция с teamcity
`TODO: переформулировать абзац`
Решение выявления новых ошибок линтера eslint и падения сборки `(*подумать*:?с отправкой статуса в
Bitbucket)` будет реализовано как скрипт для сравнение двух результатов проверок по мас
тер ветке и текущей ветки сборки проекта. Программно это будет отдельный модуль, подк
лючаемый к решению по выставлению статуса сборки на основе проверки результирующего
JSON файла на основе заданных условий. Отправка результата сборки реализовываться в
рамках решения не будет, т.к. есть работающее решение в виде плагина для Teamcity ли
шённое недостатков, которые было-бы необходимо решать.

[Подробное описание модулей](./lib/README.md)

###Интеграция с teamcity
Для интеграции используется доработанный скрипт обработки результатов eslint-teamcity,<commit_msg>doc(*): Примеры использования в документацию<commit_after># buld failed conditions
Решение для выставление статусов сборки ct(continues test) на основе дополнительных
проверок, основанных на результатах проверок unit тестов, линтеров и т.д.
Архитектура решения подразумевает модульность, которая должна позволить использовать
различные обработчики, выносить их в отдельные npm пакеты, развивать и поддерживать
как отдельные приложения.
![Flow](./img/flow.jpg)
![Before](./img/before.jpg)
![After](./img/after.jpg)
##Использование
###run from commandline:
```
node index.js eslint
 -master /home/alexey/IdeaProjects/eslint-teamcity-failed-conditions/spec/fixtures/error.json
 -current /home/alexey/IdeaProjects/eslint-teamcity-failed-conditions/spec/fixtures/empty.json
 teamcity
 -login testUsername
 -pass testPassword
 -host testHost
 -projectId testProjectId
 -buildId testBuildId
```
в одну строку это должно выглядеть так:
```
node index.js eslint -master /home/alexey/IdeaProjects/eslint-teamcity-failed-conditions/spec/fixtures/error.json -current 
/home/alexey/IdeaProjects/eslint-teamcity-failed-conditions/spec/fixtures/empty.json teamcity -login testUsername -pass <PASSWORD> -host testHost 
-projectId testProjectId -buildId testBuildId
```

###run as nodejs module
```
const buildFailedConditions = require('buildFailedConditions');
let config = {eslint: {}, teamcity: {}};
config.eslint = {
  masterJSON: `/home/alexey/IdeaProjects/eslint-teamcity-failed-conditions/spec/fixtures/error.json`,
  currentJson: `/home/alexey/IdeaProjects/eslint-teamcity-failed-conditions/spec/fixtures/empty.json`
};
config.teamcity = {
  login: testUsername,
  pass: <PASSWORD>,
  host: testHost,
  projectId: testProjectId,
  buildId: testBuildId
};
console.log(buildFailedConditions(config));
```
##Модули
###Teamcity
Решение для выставления статуса сборки по мержу в ветку как аналог встроенному
в teamcity средству failed conditions. Решение будет основано на механизме интеграции
с teamcity - service messages, которое позволяет делать много вещей в том числе выстав
ление статуса сборки и причины падения.

###Eslint интеграция с teamcity
`TODO: переформулировать абзац`
Решение выявления новых ошибок линтера eslint и падения сборки `(*подумать*:?с отправкой статуса в
Bitbucket)` будет реализовано как скрипт для сравнение двух результатов проверок по мас
тер ветке и текущей ветки сборки проекта. Программно это будет отдельный модуль, подк
лючаемый к решению по выставлению статуса сборки на основе проверки результирующего
JSON файла на основе заданных условий. Отправка результата сборки реализовываться в
рамках решения не будет, т.к. есть работающее решение в виде плагина для Teamcity ли
шённое недостатков, которые было-бы необходимо решать.

[Подробное описание модулей](./lib/README.md)

###Интеграция с teamcity
Для интеграции используется доработанный скрипт обработки результатов eslint-teamcity,
{'fraction_non_alphanumeric': 0.07508305647840531, 'fraction_numerical': 0.0, 'mean_word_length': 5.852807283763278, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '551437', 'n_tokens_mistral': 1650, 'n_tokens_neox': 1910, 'n_words': 466}