您的位置:首页 > 编程语言

在Redhat上为.Net 项目构建基于Jenkins + Github + Mono 的持续集成环境

2015-10-19 15:57 387 查看
在Redhatenterprise6.5的服务器上,为在gutub上的.net项目构建一个持续集成环境,用到了Jenkins和mono。因公司的服务器在内网,访问外网时要通过代理,所以在很多步骤都加上了代理,如果你的服务器可以直接访问外网,则可以去掉代理。

1安装

首先要在Redhat服务器上安装必要的工具。

1.1安装Java

先检查版本,要求1.7及以上

java–version

javaversion"1.5.0"gij(GNUlibgcj)version4.4.620110731(RedHat4.4.6-3)




移除旧版本

sudoyumremovejava



安装1.7

sudo–syuminstalljava-1.7.0-openjdk–nogpgcheck


有时在pgpcheck时会报错,所以加上了这个参数



1.2安装Jenkins

sudowget-e"http_proxy=http://proxyip:8080"-O/etc/yum.repos.d/jenkins.repohttp://pkg.jenkins-ci.org/redhat/jenkins.repo

sudorpm--httpproxy"http_proxy=http://proxyip:8080"--importhttps://jenkins-ci.org/redhat/jenkins-ci.org.key

sudoyuminstalljenkins

注意上面都用到了proxy,如果你的服务器能直接连外网,可以把proxy去掉

1.3安装Mono

为了方便测试.net的项目,我们安装下Mono:

[/code]
$sudoyum-yinstallbisongettextglib2freetypefontconfiglibpnglibpng-devellibX11libX11-develglib2-devellibexifglibc-develurw-fontsjavaunzipgccgcc-c++automakeautoconflibtoolmakebzip2wget
$cd/usr/local/src
$sudowgethttp://download.mono-project.com/sources/mono/mono-4.0.1.44.tar.bz2$sudotarjxfmono-4.0.1.44.tar.bz2
$cdmono-4.0.1
$sudo./configure--prefix=/opt/mono
$sudomake
$sudomakeinstall


exportPATH=$PATH:/opt/mono/bin
exportPKG_CONFIG_PATH=/opt/mono/lib/pkgconfig

[/code]
参考《http://help.octopusdeploy.com/discussions/problems/39756-install-mono-on-centos-66》


2配置

2.1启动Jenkins

cdjenkins

sudojava–jarjenkis.war


这时如果出现下面的错误:

javax.jmdns.impl.HostInfonewHostInfo
WARNING:Couldnotintializethehostnetworkinterfaceonnullbecauseofanerror:MDRADEL0:MDRADEL0:Nameorservicenotknown
java.net.UnknownHostException:MDRADEL0:MDRADEL0:Nameorservicenotknown

则需要改下hosts文件

vi/etc/hosts

127.0.0.1localhostlocalhost.localdomainlocalhost4localhost4.localdomain4
::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain6
16.173.233.21nis-sh-02
16.173.233.20nis-sh-01
16.173.233.20nis-sh-01
16.173.233.20nis-sh-01

改成如下内容:

#127.0.0.1localhostlocalhost.localdomainlocalhost4localhost4.localdomain4

127.0.0.1localhostMDRADEL0
::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain6
16.173.233.21nis-sh-02
16.173.233.20nis-sh-01
16.173.233.20nis-sh-01
16.173.233.20nis-sh-01

这个错误,我先没当回事,但后面在界面上操作时会出现很多错误。


如果你想启动Jenkins还想在redhat服务器上做其它操作,也可以用下面的方式来启动jenkins:

sudoservicejenkinsstart

启动完后,就可以在本机浏览器上用http://serverip:8080打开jenkins了:






2.2配置Jenkins

安装插件

打开系统管理–》插件管理–》可选插件

如果发现里面为空时,要到“高级”tab里右下角,点击“立即获取”。

如果点击“立即获取”按钮时报错:

java.net.ConnectException:Connectiontimedoutatjava.net.PlainSocketImpl.socketConnect(NativeMethod)atjava.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)atjava.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)atjava.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)

看是不是要设置代理:






在“可选插件”里选中git、githubplugin和msbuild安装。


系统设置

打开系统管理–》系统设置,设置git和msbuild选项:





这里要注意的是PathtoMSBuild:/opt/mono/bin/xbuild

后面不能带.exe,不然在后面“立即构建”时会报错:找不到这个文件。这个path,可以在安装完mono后,用下面的命令查出:

whereisxbuild
xbuild:/opt/mono/bin/xbuild

2.3配置项目

新建一个“构建一个自由风格的软件项目”

填写git项目的信息:





添加构建步骤,选择前面创建好的“mono”:





3测试


点击左边菜单的“立即构建”:





在BuildHistory下面可以看到Build的结果,红色是失败了。

如果失败了,可以打开这条失败记录的“ConsoleOutput”,查看失败的原因:





我创建的是一个最简单的unittest项目,所以里面会有一个Microsoft.VisualStudio.QualityTools.UnitTestFramework的引用,因为Redhat只是安装了mono,并没有安装.netframework,所以找不到这个引用,于是新建一个目录,把这个dll添加进项目里,再引用这个目录下的dll:





再次点击“立即构建”,成功了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: