2015-11-03 2 views
10

Похоже, что Build Breaker Plugin больше не совместим с SonarQube 5.2. Существует ли какая-либо альтернатива сбою (VSO), если ворота Sonar не выполняются или планируется обновить плагин Build Breaker до 5.2?Плагин для размыкателя сборки с SonarQube 5.2

+1

Этот вопрос обсуждался в группе google группы SonarQube: https://groups.google.com/d/msg/sonarqube/gR07SqqpAyQ/ulN2wdO4EQAJ –

ответ

11

На данный момент нет плагина, который сломает сборку, когда Quality Gate не перейдет на SonarQube 5.2.

Но для SonarQube 5.3+ вы можете снова использовать плагин Build Breaker.


Из списка рассылки:

Breaking the build in SonarQube 5.2 (21/октябрь/2015)

Fabrice Bellingrad: Build Breaker Plugin не будет доступен для SQ 5.2+. Идея состоит в том, чтобы разработать основную функцию , чтобы ответить на случаи использования, ранее описанные в этом плагине. Это то, что мы называем «что если» функция => https://jira.sonarsource.com/browse/SONAR-6763

Этот вопрос SONAR-6763 планируется SonarQube 6.X.

+0

Обратите внимание, что эта дата выпуска может перемещаться. :) –

+4

Это довольно разочаровывает. Мы полагаемся на это как часть нашей непрерывной интеграции. Есть ли обоснование для удаления полезной функции? – jbarrus

+0

Я с тобой. Из-за этого мы не будем обновляться до 5.2. Это необходимо иметь функцию при создании вашей платформы непрерывной интеграции! –

2

В 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.

+1

Дополнительные шаги командной строки всегда запускаются * перед * Sonar, поэтому это невозможно использовать. – mirabilos

2

С помощью SonarQube 5.3 было введено новое Quality Gates Web Service, которое можно было бы назвать и использовать для разрыва сборки.

Чтобы разорвать сборки CI для неисправного качества ворот, используйте WS API вызовы в цикле, чтобы ждать, пока обработка не будет завершена, а затем проверить качество ворота вебов-сервис:

  • вызова ceTaskUrl анализе и исследовать «статус» значение:
    • или незавершенных IN_PROGRESS - проверьте позже
    • FAILED или аннулированными - разбейте строить?
    • УСПЕХ - двигаться вперед
  • вызова веб-службы качества Ворота для статуса

Я также добавил issue to enhance the VSTS Tasks with an option to automatically call this service.

Update:recent PR добавили эту функцию в Задачу VSTS (еще не выпущен)

+2

Вы только говорите, что «можно использовать», но, пожалуйста, опишите * как *, тоже. – mirabilos

+0

См. Ссылку, о которой я упомянул [Нарушение сборки CI] (http://docs.sonarqube.org/display/SONAR/Breaking+the+CI+Build), а также [Реализация задачи VSTS] (https: // github. com/Microsoft/vso-agent-tasks/tree/master/Tasks/SonarQubePostTest) для примера. Я не думаю, что сонар опубликовал дополнительную документацию об этом. В противном случае вы должны спросить их напрямую, если вам нужна дополнительная помощь. –

Смежные вопросы