天天看點

Jenkins 配置&內建StyleCop

概要

  • 安裝
  • 系統配置
  • 項目配置
    • 源碼管理
    • 建構觸發器
    • 建構項目
  • 郵件配置
  • 內建StyleCop

正文

安裝

網上有教程,略過…

系統配置

配置MSBuild(後續項目建構中需要使用):

Jenkins 配置&內建StyleCop

項目配置

1.建立項目:

Jenkins 配置&內建StyleCop

2.選擇項目類型:

Jenkins 配置&內建StyleCop

3.進入項目配置頁面

Jenkins 配置&內建StyleCop

4.源碼管理

Jenkins 配置&內建StyleCop

5.項目建構

Jenkins 配置&內建StyleCop

6.首先使用MSBuild命名将項目編譯後的檔案放到臨時目錄,然後再用batch command将臨時目錄複制到iis指向的目錄。

Jenkins 配置&內建StyleCop

7.配置觸發器

日程表表達式可以參考說明,0 * * * * (表示每個整點運作項目建構)

Jenkins 配置&內建StyleCop

8.建構項目

Jenkins 配置&內建StyleCop

建構資訊:

圖中标示的為本次建構的svn revision

Jenkins 配置&內建StyleCop

本次建構的所有變更記錄

Jenkins 配置&內建StyleCop

郵件配置

1.進入系統配置頁面配置郵件發送的SMTP

Jenkins 配置&內建StyleCop

2.進入項目配置頁面,配置郵件通知:(每次不穩定建構時會郵件通知)

Jenkins 配置&內建StyleCop

內建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

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 配置&amp;內建StyleCop
Jenkins 配置&amp;內建StyleCop

6.進入項目配置頁面,增加建構步驟,使用MSBuild運作上述的CodeQuailty.targets

Jenkins 配置&amp;內建StyleCop

7.在項目配置頁面,增加建構後步驟,開啟Report Violations

Jenkins 配置&amp;內建StyleCop

配置StyleCop運作結果的xml路徑

Jenkins 配置&amp;內建StyleCop

8.檢視build後StyleCop結果

Jenkins 配置&amp;內建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

繼續閱讀