在CentOS上构建.net自动化编译环境,centos.net


         我们知道在Windows上我们很容易构建于MSBuild的自动化编译环境,那么在CentOS也是可以的,主要是需要Mono。
在这儿我们选择Jenkins+Gitlab+Mono在CentOS 6.5构建的环境。

1. 安装 Jenkins
    Jenkins,之前叫做Hudson,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,包括:持续的软件版本发布/测试项目。 监控外部调用执行的工作。
在CentOS中安装:

   

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo

sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

sudo yum install jenkins

2.  安装 Mono 3.10 
     Mono是一个致力于开创.NET在Linux上使用的开源工程。它包含了一个C#语言的编译器,一个CLR的运行时,和一组类库,并实现了 ADO NET和ASP NET。该项目的目标是创建一系列符合标准ECMA (Ecma-334和Ecma-335)的.Net 工具, 包括C #编译器和共同语言(CL 即 Common Language)执行平台(Platform).与微软的.Net不同, Mono项目不仅可以运行于Windows系统内,还可以运行于Linux, FreeBSD, Unix, Mac OS X和Solaris。

2.1 安装Mono需要的GDI+兼容API的库Libgdiplus

   

cd /usr/local/src/

wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.tar.bz2

tar -jxvf libgdiplus-2.10.tar.bz2

cd libgdiplus-2.10

./configure --prefix=/usr

make

make install

2.2 源码安装Mono 3.10

   

cd /usr/local/src/

wget http://origin-download.mono-project.com/sources/mono/mono-3.10.0.tar.bz2

tar -jxvf mono-3.10.0.tar.bz2

cd mono-3.10.0

./configure --prefix=/usr

make

make install

输入 mono -V 如有mono版本信息,则安装成功.

3. 安装GitLab
GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
在这儿为了方便, 选用bitnami的集成好VM版GitLab,运行于Ubuntu 14.04

Gitlab VM

当然您也可以 在CentOS中手工安装GitLab,还可参考GitLab版本管理
Tips: Jenkins服务器与GitLab可以分开部署

4.  安装Jenkins 的插件

   

https://wiki.jenkins-ci.org/display/JENKINS/SCM+API+Plugin

https://wiki.jenkins-ci.org/display/JENKINS/MSTest+Plugin

https://wiki.jenkins-ci.org/display/JENKINS/xUnit+Plugin

https://wiki.jenkins-ci.org/display/JENKINS/MSBuild+Plugin

https://wiki.jenkins-ci.org/display/JENKINS/Git+Client+Plugin

https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin

5. 在shell中执行,导入如下证书:

   

$ sudo mozroots --import --machine --sync
$ sudo certmgr -ssl -m https://go.microsoft.com
$ sudo certmgr -ssl -m https://nugetgallery.blob.core.windows.net
$ sudo certmgr -ssl -m https://nuget.org

为避免

   

  Nuget with mono getting response stream (Write: The authentication or decryption has failed.): SendFailure

 

配置NuGet自动还原
由于现在.net 的项目与解决方案都是使用NuGet来管理依赖了。同时在VS的项目中我们需要打开


作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
该文章也同时发布在我的独立博客中-Petter Liu Blog。

相关内容