Как запустить несколько анализов SonarQube в одном и том же проекте (рабочей области) одновременно? - PullRequest
0 голосов
/ 28 декабря 2018

Я использую конвейер Jenkins, где сборка запускается при отправке запроса на слияние.Сборка выполняется, и SonarQube анализирует рабочее пространство.Другое запрошенное объединение отправляется одновременно, и сборка запускается, но SonarQube завершается ошибкой со следующей ошибкой:

ERROR: Error during SonarQube Scanner execution ERROR: Another SonarQube analysis is already in progress for this project

Как запустить несколько анализов SonarQube для одного и того же проекта одновременно?

1 Ответ

0 голосов
/ 31 декабря 2018

Со стороны Jenkins, решение состоит в том, чтобы иметь разные папки репо в вашем рабочем пространстве для каждой проверки, чтобы вы не столкнулись с одним и тем же заблокированным проектом дважды.Вы можете сделать это несколькими способами, это зависит только от того, сколько одновременных сборок вы ожидаете одновременно.

Предполагая, что вы используете Git, вы можете добавить это в разделе расширений вашей команды checkout, чтобы каждая сборка была извлечена в своем собственном каталоге, основанном на номере сборки, и в одном каталоге рабочего пространства (т.е.каталог вашего конвейера).

[$ class: 'RelativeTargetDirectory' ,lativeTargetDir: "$ {BUILD_NUMBER}"]

У вас есть два варианта очистки, либо используйте "Очистить репозиторий"& force clone "из команды извлечения или из плагина очистки рабочего пространства.

Имейте в виду, что команда checkout wipe удалит все содержимое каталога, в котором вы собираетесь выполнить следующую проверку, это означает, что остальная часть вашего рабочего пространства останется нетронутой и не будет работать, если вы использовали сборкуномер как в примере выше.Вот что вам нужно добавить в раздел расширений:

[$ class: 'WipeWorkspace']

Плагин cleanWS дает вам большую гибкость, так как вы можетеукажите шаблоны для того, что вы хотите включить, или исключите, если вы измените тип:

cleanWs (шаблоны: [[pattern: '', type: 'INCLUDE']])

Надеюсь, это поможет.

...