Похоже, что Плагин отключения сборки больше не совместим с SonarQube 5.2. Существует ли какая-либо альтернатива сбою сборки (VSO), если ворота Sonar не выполняются или планируется обновить плагин Build Breaker до 5.2?
Плагин для разблокировки сборки с помощью SonarQube 5.2
Ответ 1
Нет (на данный момент) никакого плагина, который сломает сборку, когда Quality Gate не перейдет на SonarQube 5.2.
Но для SonarQube 5.3+ вы можете снова использовать плагин Build Breaker.
Из списка рассылки:
Нарушение сборки в SonarQube 5.2 (21/Oct/2015)
Фабрицио Беллинград: Build Breaker Плагинне будет доступен для SQ 5.2+. Идея состоит в том, чтобы разработать основную функцию чтобы ответить на случаи использования, ранее описанные в этом плагине. Это то, что мы называем функцией "что, если" = > https://jira.sonarsource.com/browse/SONAR-6763
Этот вопрос SONAR-6763 запланирован для SonarQube 6. X.
Ответ 2
Теперь вы можете использовать SonarQube Build Breaker Plugin с версией SonarQube версии 5.3 +.
Ответ 3
В SonarQube 5.2 мы нашли альтернативный способ использования веб-сервиса /api/events.
Пример запроса:
https://<sq-host>/api/events?categories=Alert&resource=<project_key>
Пример ответа:
<events>
<event>
<id>50411</id>
<name>Red (was Green)</name>
<resourceKey>project_key</resourceKey>
<category>Alert</category>
<date>2015-09-29T22:38:44+0200</date>
<description>New Critical issues > 0 since previous analysis (2015 Sep 23), New Major issues > 0 since previous analysis (2015 Sep 23), New issues > 0 since previous analysis (2015 Sep 23)</description>
</event>
....
</events>
Обнаружение RED-статуса проекта:
Чтобы проверить статус RED, вам нужно найти event
с наивысшим значением id
в events
от ответа, а затем проверить, что name
этого события начинается с Red
, и если вы его найдете вам придется сбой сборки.
Такая проверка может быть выполнена только на сервере CI, используя дополнительный шаг командной строки после шага SQ, или это можно сделать из системы автоматизации сборки, например Maven или Gradle.
Мы не реализовали такое обходное решение еще в нашем проекте, просто из-за отсутствия свободного времени, но мы сделаем это в ближайшем будущем.
Предлагаемое решение должно использоваться только в качестве обходного пути до выпуска SONAR-6763.
Ответ 4
С SonarQube 5.3 был представлен новый веб-сервис Quality Gates, который можно было бы назвать и использовать для разрыва сборки.
Чтобы разбить сборку CI для неудавшегося Quality Gate, используйте вызовы WS API в цикле, чтобы дождаться завершения обработки, а затем проверьте веб-сервис Quality Gate:
- вызовите анализ ceTaskUrl и изучите значение "status":
- PENDING или IN_PROGRESS - повторите проверку позже
- FAILED или CANCELED - сломать сборку?
- УСПЕХ - продвигайтесь вперед
- вызов веб-службы Quality Gate для статуса
Я также добавил проблему для улучшения задач VSTS с возможностью автоматического вызова этой службы.
Обновление: недавний PR добавил эту функцию к задаче VSTS (еще не выпущен)