Отказ Quality Gate в SonarQube не подводит сборку в Teamcity - PullRequest
0 голосов
/ 27 сентября 2018

Я создал проект Build в TeamCity и интегрировал с ним Sonarqube.Проект находится в стадии сборки и даже успешно публикует отчет в консоли SonarQube.Но когда качественные ворота терпят неудачу, это не ломает сборку.Я искал и читал о сборщике сборок, но он уже поддерживается с помощью плагина Sonarqube TeamCity, так как этот документ https://confluence.jetbrains.com/display/TW/SonarQube+Integration

Я что-то упустил для настройки / или какой-то другой недочёт?Я пытался много искать, но не нашел какой-либо надлежащей документации или руководства по этому вопросу.

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Да, мне нужно написать собственный скрипт, используя статус выхода, чтобы прервать сборку.Я использовал API для анализа состояния QG.

PROJECTKEY="%teamcity.project.id%"
QGSTATUS=`curl -s -u  SONAR_TOKEN: http://SONAR_URL:9000/api/qualitygates/project_status?projectKey=$PROJECTKEY | jq '.projectStatus.status' | tr -d '"'`
if [ "$QGSTATUS" = "OK" ]
then
exit 0
elif [ "$QGSTATUS" = "ERROR" ]
then
exit 1
fi    
0 голосов
/ 28 сентября 2018

Плагин SonarQube не нарушает сборку, если качественные ворота не сработали.Зачем?Все описано здесь: Почему вы не должны использовать Build Breaker

Главный вывод:

[...] SonarSource не хочетпродолжить функцию.[...]

Как только мы начали использовать настенные панели, мы прекратили использовать плагин Build Breaker, но все же считали, что его использование было нормальным занятием.А затем появился SonarQube 5.2, который разрывает соединение между анализатором и базой данных.Благодаря этому сокращению появилось много хорошего, в том числе существенное изменение архитектуры: анализ исходного кода выполняется на стороне анализатора, а все вычисления совокупного числа теперь выполняются на стороне сервера.Это означает ... что анализатор больше не знает о качестве качества.Это делает только сервер, и поскольку аналитические отчеты обрабатываются последовательно, в порядке поступления заявок, может пройти некоторое время, прежде чем будет получен результат Quality Gate для задания.

Другими словами, с нашей точки зрения, функция Build Breaker больше не имеет смысла.

Вы должны сами проверить статус качества ворот.Вы можете прочитать, как это сделать, здесь: Доступ к качеству шлюза от sonarqube api

...