Интеграция StyleCop.Analyzers в GitLab

У меня есть проект C# (.NET Core 3.1), и я использую с ним пакет Nuget StyleCop.Analyzers. Он анализирует мой код во время сборки и показывает различные предупреждения, если обнаруживает какие-либо проблемы с моим кодом. Теперь мне интересно, можно ли интегрировать его проверки в GitLab CI piplene? Я хотел бы запускать этот анализ после каждой сборки в GitLab. Как это сделать?

1 ответ

"запускать этот анализ после каждой сборки"

Если вы используете анализ кода из, ссылаясь на пакет NuGet в своих проектах, то анализ кода выполняется во время компиляции (сборки). Нет необходимости в анализе после каждой сборки, потому что на тот момент анализ уже был сделан - вместе со сборкой. Любые ошибки, вызванные отклонениями от правил стилизации, которые вы видите в списке ошибок Visual Studio или в интерфейсе командной строки, также будут присутствовать в выходных данных конвейера GitLab CI, поскольку в конечном итоге все они компилируются одним и тем же .NET SDK.

Для правильной настройки анализа кода добавьте Ссылка на пакет для вашего проекта / ов:

        <ItemGroup>
    <PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
  </ItemGroup>

Дополнительно вы можете дополнительно настроить StyleCop.Analyzers поведение с .ruleset файлы, чтобы, например, отказаться от некоторых надоедливых правил стилизации:

      <RuleSet Name="Rules for ClassLibrary21" Description="" ToolsVersion="15.0">
    <Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.Analyzers">
        <Rule Id="SA0001" Action="None" />
    </Rules>
</RuleSet>

Файлы набора правил должны быть явно указаны в настройках файла проекта:

        <PropertyGroup>
    <CodeAnalysisRuleSet>..\..\StyleCop.ruleset</CodeAnalysisRuleSet>
  </PropertyGroup>

Узнайте больше о наборах правил в официальной документации или посмотрите файл набора правил, который я использую в своей библиотеке на GitLab для справки.

Другие вопросы по тегам