在Redhat上為.Net 項目構建基於Jenkins + Github + Mono 的持續集成環境


在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了:

image

 

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)

 

看是不是要設置代理:

image

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

 

系統設置

打開 系統管理 –》 系統設置, 設置 git 和 msbuild 選項:

image

 

這里要注意的是 Path to MSBuild : /opt/mono/bin/xbuild

后面不能帶.exe, 不然在后面“立即構建”時會報錯:找不到這個文件。這個path,可以在安裝完mono后,用下面的命令查出:

whereis xbuild
xbuild: /opt/mono/bin/xbuild

 

2.3 配置項目

新建一個 “構建一個自由風格的軟件項目”

 

  • 填寫git項目的信息:

image

 

添加構建步驟,選擇前面創建好的“mono”:

image

3 測試

 
        
點擊左邊菜單的“立即構建”:
image
 

在 Build History 下面可以看到Build的結果,紅色是失敗了。

如果失敗了,可以打開這條失敗記錄的 “Console Output” ,查看失敗的原因:

image

我創建的是一個最簡單的unit test項目,所以里面會有一個 Microsoft.VisualStudio.QualityTools.UnitTestFramework 的引用,因為Redhat 只是安裝了mono,並沒有安裝 .net framework, 所以找不到這個引用,於是新建一個目錄,把這個dll添加進項目里,再引用這個目錄下的dll:

image

 

再次點擊 “立即構建”,成功了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM