设为首页 收藏本站
查看: 901|回复: 0

[经验分享] 在Redhat上为.Net 项目构建基于Jenkins + Github + Mono 的持续集成环境

[复制链接]

尚未签到

发表于 2018-1-6 22:27:21 | 显示全部楼层 |阅读模式
  在Redhat enterprise 6.5 的服务器上,为在gutub 上的 .net 项目构建一个持续集成环境,用到了Jenkins和mono。因公司的服务器在内网,访问外网时要通过代理,所以在很多步骤都加上了代理,如果你的服务器可以直接访问外网,则可以去掉代理。

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

1.1 安装Java


  • 先检查版本,要求1.7及以上
  java –version
  java version "1.5.0" gij (GNU libgcj) version 4.4.6 20110731 (Red Hat 4.4.6-3)
  

  

  


  • 移除旧版本
  

sudo yum remove java  

  


  • 安装1.7
  sudo –syum install java-1.7.0-openjdk –nogpgcheck
  

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

  

1.2 安装Jenkins
  sudo wget -e "http_proxy=http://proxyip:8080" -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
  sudo rpm --httpproxy "http_proxy=http://proxyip:8080"  --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
  sudo yum install jenkins
  注意上面都用到了proxy,如果你的服务器能直接连外网,可以把proxy去掉

1.3 安装Mono
  

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

  

$ sudo yum -y install bison gettext glib2 freetype fontconfig libpng libpng-devel libX11 libX11-devel glib2-devel libexif glibc-devel urw-fonts java unzip gcc gcc-c++ automake autoconf libtool make bzip2 wget  
$ cd /usr/local/src
  
$ sudo wget http://download.mono-project.com/sources/mono/mono-4.0.1.44.tar.bz2
  
$ sudo tar jxf mono-4.0.1.44.tar.bz2
  
$ cd mono-4.0.1
  
$ sudo ./configure --prefix=/opt/mono
  
$ sudo make
  
$ sudo make install
  

  

export PATH=$PATH:/opt/mono/bin  
export PKG_CONFIG_PATH=/opt/mono/lib/pkgconfig
  

  

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


2 配置

2.1 启动Jenkins
  

cd jenkins  

sudo java –jar jenkis.war  

  

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

  javax.jmdns.impl.HostInfo newHostInfo
  WARNING: Could not intialize the host network interface on null because of an error: MDRADEL0: MDRADEL0: Name or service not known
  java.net.UnknownHostException: MDRADEL0: MDRADEL0: Name or service not known
  则需要改下hosts文件
   vi /etc/hosts
  127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
  ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
  16.173.233.21 nis-sh-02
  16.173.233.20 nis-sh-01
  16.173.233.20 nis-sh-01
  16.173.233.20 nis-sh-01
  改成如下内容:
  #127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
  127.0.0.1   localhost MDRADEL0
  ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
  16.173.233.21 nis-sh-02
  16.173.233.20 nis-sh-01
  16.173.233.20 nis-sh-01
  16.173.233.20 nis-sh-01
  

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

  如果你想启动Jenkins还想在redhat服务器上做其它操作,也可以用下面的方式来启动jenkins:
  sudo service jenkins start
  启动完后,就可以在本机浏览器上用 http://serverip:8080 打开 jenkins了:

  

2.2 配置Jenkins

安装插件
  打开 系统管理 –》 插件管理 –》 可选插件
  如果发现里面为空时,要到 “高级”tab里右下角,点击 “立即获取”。
  如果点击 “立即获取”按钮时报错:
  java.net.ConnectException: Connection timed out at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
  看是不是要设置代理:

  

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


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

  这里要注意的是 Path to MSBuild : /opt/mono/bin/xbuild
  后面不能带.exe, 不然在后面“立即构建”时会报错:找不到这个文件。这个path,可以在安装完mono后,用下面的命令查出:
  whereis xbuild
  xbuild: /opt/mono/bin/xbuild

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


  • 填写git项目的信息:

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


3 测试
  

  

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

  

  

  在 Build History 下面可以看到Build的结果,红色是失败了。
  如果失败了,可以打开这条失败记录的 “Console Output” ,查看失败的原因:

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

  再次点击 “立即构建”,成功了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-432401-1-1.html 上篇帖子: jenkins配置自动发送邮件 下篇帖子: jenkins集成python的单元测试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表