如何将你的csharp(C#)项目加入Travis CI持续构建队列

翅膀的初衷

发表于2016-02-09 22:29:34

Travis CI 是一款国外知名的在线持续构建工具,目前在GITHUB上得到大量应用,但是在目前的C#语言项目中,使用Travis CI的占比较小,而且缺乏有效的中文介绍,在此情况下,本文将重点介绍如何将你的C#项目加入Travis CI持续构建队列。

在使用Travis CI之前要注意,当前Travis CI对C#.F#及VB的支持,目前仅是BETA版,在正式版出来前,可能存在变更及删除的风险。

附官网英文原文警告如下:

Travis CI support for C#, F#, and Visual Basic is currently in beta and may be removed or altered at any time. If you run into any problems, please report them in the Travis CI issue tracker and cc @joshua-anderson @akoeplinger @nterry.

如果您了解风险并希望继续向下操作的话,我们来进行下一步:

在 Travis CI 上的c#运行环境是linux+mono,如果您的项目有太多必须依赖WIN环境的属性(比如WINFORM)的话,失败的可能性是非常高的,建议使用其它的支持WINDOWS环境的构建工具,如 果您的项目是WEB或者不依赖特定系统的框架(类库),Travis CI是优秀的选择之一,特别您的项目是像jntemplate一样希望它是跨平台的时候。

使用Travis CI必须在项目的根目录下,放置(新建)一个.travis.yml文件,它是Travis CI基础配置文件,Travis CI会根据该文件的参数来构建项目。

在这里以一个现成的.travis.yml文件为示例:

language: csharp
before_install:
 - chmod +x build/build.mono.sh
install:
  - nuget restore JinianNet.JNTemplate.sln
  - nuget install xunit.runners -Version 1.9.2 -OutputDirectory testrunner
script:
  - ./build/build.mono.sh
  - xbuild /p:Configuration=Release JinianNet.JNTemplate.sln
  - mono ./testrunner/xunit.runners.1.9.2/tools/xunit.console.clr4.exe ./src/JinianNet.JNTemplate.Test/bin/Release/JinianNet.JNTemplate.Test.dll

这里有四个配置项,常规下,我们只需要language与script二项目即可。

language:表示当前项目使用的语言,C#填csharp

script:用来执行构建脚本

MONO下构建项目,我推荐使用mcs或xbuild,前者的使用类似于.NET中的csc,参数基本一致(通常直接拿过来用就行),后面类似于MSbuild。

在使用情况下,MCS更加灵活,自定义性更强,后者使用方便,且必须依赖于解决方案(.sln),所以我推荐新人直接用XBUILD,如果比较熟练了,建议写SH,通过MCS构建。

上面示例中,二种方式都使用到了,全脚本讲解如下:

language: csharp #当前语言是C#
before_install:
 - chmod +x build/build.mono.sh #为build.mono.sh赋执行权限
install:
  - nuget restore JinianNet.JNTemplate.sln #通过nuget restore恢复引用的DLL
  - nuget install xunit.runners -Version 1.9.2 -OutputDirectory testrunner #安装 xunit.net测试框架,为了能正常运行单元测试,建议将MS的测试框架改成 xunit.net
script:
  - ./build/build.mono.sh #执行构建脚本,脚本中通过mcs命令构建项目
  - xbuild /p:Configuration=Release JinianNet.JNTemplate.sln #此处通过xbuild以Release模式构建JinianNet.JNTemplate.sln解决方案
  - mono ./testrunner/xunit.runners.1.9.2/tools/xunit.console.clr4.exe ./src/JinianNet.JNTemplate.Test/bin/Release/JinianNet.JNTemplate.Test.dll #执行单元测试

将以上文件保存为.travis.yml并放置于根目录(使用时,请根据实际情况修改脚本内容),提交到GITHUB的主分支,

然后使用GITHUB帐号登录travis-ci.org,登录成功后,进入https://travis-ci.org/profile,将需要加入刚才的项目加入构建队列(即将项目目名的小勾勾上即可)。至此,加入travis ci构建队列队列工作我们已经完成了。为了测试下我们的配置是否正确及构建能 否成功,向GITHUB随便PUSH点内容,travis ci构建便会开始,且以后每次提交内容都会进行构建一次。

本文参考:https://docs.travis-ci.com/user/languages/csharp/(官方英文文档,如果有其它不明之处,也可以参考此处)

原创文章,转载注明出处:http://www.jiniannet.com