Неудачная сборка предупреждений статического анализа кода с помощью msbuild и bamboo

Используя bamboo v5.7 с msbuild v12, как я могу завершить сборку, если есть какие-либо предупреждения статического анализа кода? У нас есть все наши проекты, настроенные на обработку всех предупреждений как ошибок, поэтому сам проект не собирается, но бамбук не обнаруживает этого и продолжает работу.

Это кажется элементарным, что я могу делать неправильно?


person BrettRobi    schedule 10.01.2015    source источник


Ответы (2)


Ответ прост: вы не делаете ничего плохого и ничего не упускаете.

Хотя это кажется базовой функциональностью, задача Bamboo MSBuild в настоящее время не поддерживает чтение, создание отчетов или сбой сборки при предупреждениях или ошибках. Задача не выполняется только потому, что MSBuild (или XBuild, если вы используете Mono) возвращает код ошибки при возникновении ошибки компилятора.

Кроме того, MSBuild на самом деле не поддерживает сбой для всех предупреждений, как вы можете видеть здесь.

У вас есть пара вариантов.

  • Вы можете использовать один из вариантов в сообщении со ссылкой
  • Вы можете развернуть собственный подключаемый модуль анализатора журналов MSBuild, используя пакет SDK подключаемых модулей Atlassian.
  • Вы можете сделать простой скрипт, который выполняется после сборки, читает журналы и возвращает ненулевое целое число, если есть предупреждения компилятора.
  • Вы можете проголосовать за проблему в Atlassian Jira, а также за связанная проблема для разбора деталей сборки.

Каким бы ни было ваше решение, я надеюсь, что вы поделитесь им со многими из нас, которые столкнулись с той же проблемой. Кажется, это что-то довольно распространенное, поэтому я был удивлен, что в экземпляре Atlassian Jira для этого еще не было открытой проблемы.

person chaosaffe    schedule 16.11.2015

Для VS 2008 и более поздних версий для этого был добавлен новый параметр проекта. См. эту ссылку.

person Mark Woodard    schedule 21.12.2016
comment
Хотя теоретически это может ответить на вопрос, было бы предпочтительнее включить сюда основные части ответа и предоставить ссылку для справки. . - person BrokenBinary; 21.12.2016
comment
Ссылка находится под словом «это», но я расшифрую ее по буквам: blogs.msdn.microsoft.com/codeanalysis/2007/08/08/. - person Mark Woodard; 24.01.2017
comment
По сути, он просто говорит добавить ‹CodeAnalysisTreatWarningsAsErrors›true‹CodeAnalysisTreadWarningsAsErrors› в первую группу свойств в файле проекта. - person Mark Woodard; 24.01.2017