首页 > 其他 > 详细

Jenkins DevOps 实践之持续集成时打Label

时间:2017-02-24 18:14:31      阅读:213      评论:0      收藏:0      [点我收藏+]

这篇文章记录了如何优雅的在持续集成的过程中打Label.如有不对欢迎指正。

0. 我们准备好Solution如下图所示一个普通.NET程序:

技术分享

1. 我们添加一个名为VersionInfo.cs文件, 放在SolutionItems 文件夹中。这个文件用来给所有的项目共享。

技术分享

这个文件其实就只有这么一句话,让后把所有其他项目中的 “Properties\AssemblyInfo.cs”中以下代码注释掉或者直接删掉因不会再用到了。

//[assembly: AssemblyVersion("1.0.0.0")]

2. 将VersionInfo.cs文件已链接的形式加到每个项目额Properties文件夹中,如步骤0的截屏所示。这一步的作用就是让所有的项目使用同一个版本号。如此Jenkins修改版本好就只要改一个文件了。

3. 修改WebSite的项目文件,在项目文件(.csproj)最后加上Target标记如下图所示

 <Target Name="BeforeBuild">    
    <WriteLinesToFile Condition=" ‘$(AsmVersion)‘ != ‘‘ " File="..\VersionInfo.cs" Overwrite="True" Lines="[assembly: System.Reflection.AssemblyVersion(&quot;$(AsmVersion)&quot;)]">
    </WriteLinesToFile>
  </Target>

聪明的你肯定注意到 “$(AsmVersion)“ 这个标记用给MSBuild传递参数。

4. 回到Jenkins,

  a. 首先我们得安装好Version NUmber plugin。

  b. 下载TEE-clc https://github.com/Microsoft/team-explorer-everywhere/releases

注意运行TEE需要JDK。请自行安装

5. 配置Version Number Plugin

技术分享

6. 配置build Step。 给当前build的代码打Label, 代码如下图所示。为毛不用TF.EXE原因是因为这货要用太麻烦。只有这个步骤放在那一步,请自行决定没有标准。下图中我将build Number作为Label名称,有利于后面发现问题找到到对应代码。
技术分享

7. 把AssemblyVersion 的Number替换掉:

"C:\Program Files (x86)\MSBuild\14.0\Bin\msbuild.exe" "%WORKSPACE%\proj.sln" /target:rebuild /p:AsmVersion=%VERSION%

8. 最后建议在网页上把Version 号码显示出来。这个例子用的是MVC,可将下面代码放在View的某个角落:

version:@ViewContext.Controller.GetType().Assembly.GetName().Version Date:@File.GetCreationTime(ViewContext.Controller.GetType().Assembly.Location)

 

 

  

 

Jenkins DevOps 实践之持续集成时打Label

原文:http://www.cnblogs.com/chen-dong/p/6437732.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!