Анализ нового\обновленного кода только для проектов dotnet с помощью sonarcloud

Мы настроили анализ запросов на вытягивание для кода C# .Net. Наблюдается, что старый код (немодифицированный) рассматривается для анализа, что не ожидается, это блокирует нас от использования контрольных точек качества.

Новое условие кода устанавливается на основе условия «количество дней», которое установлено на 1.

Даже в этом случае анализ PR/краткой ветки сообщает о проблемах, которые присутствуют в старом коде (который не обновляется\редактируется как часть запроса на включение), из-за этой проблемы мы не можем включить контроль качества.

В конвейере Azure DevOps используются следующие задачи:

  • Подготовьте анализ для гидроакустического облака
  • Запустить анализ кода
  • Опубликовать результат проверки качества
  • Используемый ALM: Git в системе Azure DevOps CI использовал Azure DevOps
  • Языки репозитория: C# .Net

person Santhosh    schedule 08.03.2021    source источник


Ответы (1)


Это пример конфигурации конвейера SonarQube, который выполняется при каждом слиянии с основной веткой.

Примеры шагов конвейера

Шаги:

  1. Узел установлен для строительных целей
  2. Инициируется анализ подготовки, который загружает необходимые для сканирования конфигурации и наборы правил.
  3. Менеджер пакетов Nugget установлен
  4. Инициировано восстановление слепка
  5. Решение построено (важный шаг)
  6. Анализ кода проверяет каждый файл .cs, содержащийся в ранее созданном решении.
  7. Строгие ворота качества - это результаты сканирования
  8. Пользовательский этап сборки, который прерывает конвейер в случае сбоя ворот качества.

Это может быть очевидным, но убедитесь, что вы создаете решение C# между анализом подготовки в SonarQube и анализом запуска кода, чтобы предоставить обновленный код, который будет анализировать SonarQube.

Шаг «Получить результаты из SonarQube» — это сценарий PowerShell, который вызывает API-интерфейс SonarQube для получения результатов проверки качества сканирования, инициированного для того, чтобы в случае обнаружения проблем произошел сбой.

person greycr0w    schedule 20.03.2021