在Redhat上为.Net 项目构建基于Jenkins + Github + Mono 的持续集成环境
2015-10-19 15:57
387 查看
在Redhatenterprise6.5的服务器上,为在gutub上的.net项目构建一个持续集成环境,用到了Jenkins和mono。因公司的服务器在内网,访问外网时要通过代理,所以在很多步骤都加上了代理,如果你的服务器可以直接访问外网,则可以去掉代理。
java–version
javaversion"1.5.0"gij(GNUlibgcj)version4.4.620110731(RedHat4.4.6-3)
移除旧版本
安装1.7
sudo–syuminstalljava-1.7.0-openjdk–nogpgcheck
有时在pgpcheck时会报错,所以加上了这个参数
http://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去掉
[/code]
[/code]
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了:
如果发现里面为空时,要到“高级”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)
看是不是要设置代理:
这里要注意的是PathtoMSBuild:/opt/mono/bin/xbuild
后面不能带.exe,不然在后面“立即构建”时会报错:找不到这个文件。这个path,可以在安装完mono后,用下面的命令查出:
whereisxbuild
xbuild:/opt/mono/bin/xbuild
填写git项目的信息:
添加构建步骤,选择前面创建好的“mono”:
在BuildHistory下面可以看到Build的结果,红色是失败了。
如果失败了,可以打开这条失败记录的“ConsoleOutput”,查看失败的原因:
我创建的是一个最简单的unittest项目,所以里面会有一个Microsoft.VisualStudio.QualityTools.UnitTestFramework的引用,因为Redhat只是安装了mono,并没有安装.netframework,所以找不到这个引用,于是新建一个目录,把这个dll添加进项目里,再引用这个目录下的dll:
再次点击“立即构建”,成功了。
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.reposudorpm--httpproxy"http_proxy=http://proxyip:8080"--import
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
启动完后,就可以在本机浏览器上用
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的结果,红色是失败了。
如果失败了,可以打开这条失败记录的“
我创建的是一个最简单的unittest项目,所以里面会有一个Microsoft.VisualStudio.QualityTools.UnitTestFramework的引用,因为Redhat只是安装了mono,并没有安装.netframework,所以找不到这个引用,于是新建一个目录,把这个dll添加进项目里,再引用这个目录下的dll:
再次点击“立即构建”,成功了。
相关文章推荐
- C语言编程优化运行速度
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- qt线程(转)----这篇很专业!
- django自定义上传文件路径
- python函数基础知识
- Java 文件操作工具类
- 在C#中创建和读取XML文件
- 求n以内的素数个数问题
- Xcode7折叠与展开代码
- Python爬虫--抓取糗事百科段子
- 协程Coroutines_java
- 协程Coroutines_java
- java里程碑之泛型--使用泛型
- java里程碑之泛型--使用泛型
- Java HashMap和IdentityHashMap
- 在java程序中开启另一个java程序
- C++封装一个简单的线程类
- 字符串公式解析器——使用“逆波兰式算法”及C#实现
- Java从键盘获取输入值
- struts2配置文件解析