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

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


person Pupkin    schedule 15.05.2021    source источник


Ответы (1)


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

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

Чтобы правильно настроить анализ кода, добавьте ссылку на пакет StyleCop.Analyzers в свой проект:

  <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 для справки.

person Prolog    schedule 15.05.2021