Jenkins 配置&集成StyleCop

概要

  • 安装
  • 系统配置
  • 项目配置
    • 源码管理
    • 构建触发器
    • 构建项目
  • 邮件配置
  • 集成StyleCop

正文

安装

网上有教程,略过…

系统配置

配置MSBuild(后续项目构建中需要使用):
Jenkins 配置&集成StyleCop_第1张图片

项目配置

1.新建项目:
Jenkins 配置&集成StyleCop_第2张图片

2.选择项目类型:

3.进入项目配置页面

4.源码管理
Jenkins 配置&集成StyleCop_第3张图片

5.项目构建
Jenkins 配置&集成StyleCop_第4张图片

6.首先使用MSBuild命名将项目编译后的文件放到临时目录,然后再用batch command将临时目录复制到iis指向的目录。

7.配置触发器
日程表表达式可以参考说明,0 * * * * (表示每个整点运行项目构建)
Jenkins 配置&集成StyleCop_第5张图片

8.构建项目
Jenkins 配置&集成StyleCop_第6张图片

构建信息:
图中标示的为本次构建的svn revision
Jenkins 配置&集成StyleCop_第7张图片

本次构建的所有变更记录

邮件配置

1.进入系统配置页面配置邮件发送的SMTP
Jenkins 配置&集成StyleCop_第8张图片

2.进入项目配置页面,配置邮件通知:(每次不稳定构建时会邮件通知)

集成StyleCop

1.首先在build机器上安装StyleCop(4.7)

2.为了避免所有开发机强依赖StyleCop,这里使用MSBuild.Extension.Pack (4.0.9.0)

3.在项目根目录下,创建目录并复制所有的文件及dll(其中StyleCop.CSharp.dll,StyleCop.CSharp.Rules.dll,StyleCop.dll 是StyleCop安装目录下的3个dll;MSBuild.ExtensionPack.StyleCop.dll,MSBuild.ExtensionPack.tasks是MSBuild.Extension.Pack安装目录下;CodeQuailty.targets是MsBuild需要识别的target文件)
Jenkins 配置&集成StyleCop_第9张图片

4.CodeQuailty.targets

  <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Measure">
  <!--<Import Project="$(MSBuildStartupDirectory)\MSBuild.ExtensionPack.tasks"/>-->
  <UsingTask AssemblyFile="$(MSBuildStartupDirectory)\MsBuildCodeQuality\MSBuild.ExtensionPack.StyleCop.dll" TaskName="MSBuild.ExtensionPack.CodeQuality.StyleCop"/>
  <PropertyGroup>
    <OutDir>$(MSBuildStartupDirectory)</OutDir>
  </PropertyGroup>
  <Target Name="Measure">
    <Message Text="Measure called." />
    <CreateItem Include="$(MSBuildStartupDirectory)\Neo.Web\**\*.cs">
      <Output TaskParameter="Include" ItemName="StyleCopFiles"/>
    </CreateItem>

    <MSBuild.ExtensionPack.CodeQuality.StyleCop  TaskAction="Scan" ShowOutput="true" ForceFullAnalysis="true" CacheResults="false" SourceFiles="@(StyleCopFiles)" logFile="$(OutDir)\MsBuildCodeQuality\StyleCopLog.txt" SettingsFile="$(MSBuildStartupDirectory)\Neo.Web\Settings.StyleCop" ContinueOnError="false">
          <Output TaskParameter="Succeeded" PropertyName="AllPassed"/>
          <Output TaskParameter="ViolationCount" PropertyName="Violations"/>
          <Output TaskParameter="FailedFiles" ItemName="Failures"/>
    </MSBuild.ExtensionPack.CodeQuality.StyleCop>
    <Message Text="Succeeded: $(AllPassed), Violations: $(Violations)" />
  </Target>
</Project>

5.Jenkins中安装插件Violations(可用于展示StyleCop运行结果)
Jenkins 配置&集成StyleCop_第10张图片
Jenkins 配置&集成StyleCop_第11张图片

6.进入项目配置页面,增加构建步骤,使用MSBuild运行上述的CodeQuailty.targets
Jenkins 配置&集成StyleCop_第12张图片

7.在项目配置页面,增加构建后步骤,开启Report Violations

配置StyleCop运行结果的xml路径
Jenkins 配置&集成StyleCop_第13张图片

8.查看build后StyleCop结果

参考

  • http://blog.codeinside.eu/2010/12/15/howto-msbuild-stylecop/
  • https://ferritedog.wordpress.com/2011/05/27/1-hour-guide-to-continuous-integration-setup-jenkins-meets-net/
  • https://wiki.jenkins-ci.org/display/JENKINS/Violations

你可能感兴趣的:(Jenkins,MSBuild,StyleCop)