Net 项目构建基于Jenkins + Github + Mono 的持续集成环境
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.repohttp://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:
再次点击 “立即构建”,成功了。
Net 项目构建基于Jenkins + Github + Mono 的持续集成环境的更多相关文章
- 在Redhat上为.Net 项目构建基于Jenkins + Github + Mono 的持续集成环境
在Redhat enterprise 6.5 的服务器上,为在gutub 上的 .net 项目构建一个持续集成环境,用到了Jenkins和mono.因公司的服务器在内网,访问外网时要通过代理,所以在很 ...
- Redhat上为java Maven项目构建基于Jenkins + Github的持续集成环境
在Redhat enterprise 6.5 的服务器上,为在gutub 上的 java mvaen项目构建一个持续集成环境,用到了Jenkins.因公司的服务器在内网,访问外网时要通过代理,所以为m ...
- Azure 项目构建 – 部署 Jenkins 服务器以实现持续集成(CI)
通过完整流程详细介绍了如何通过 Azure 虚拟机.虚拟网络等服务在 Azure 平台上快速搭建 Jenkins 服务器. 此系列的全部课程 https://school.azure.cn/curri ...
- Jenkins Jenkins结合GIT Maven持续集成环境配置
Jenkins结合GIT Maven持续集成环境配置 by:授客 QQ:1033553122 安装Git插件 1 安装Git客户端 1 安装JAVA JDK及MAVEN 2 Jenkins JDK ...
- Docker+Jenkins+Maven+SVN搭建持续集成环境
Docker+Jenkins+Maven+SVN搭建持续集成环境 环境拓扑图(实验项目使用PHP环境) 发布流程图 环境说明 系统:Centos 7.4 x64 Docker版本:18.09.0 Ma ...
- Jenkins 搭建 .NET Core 持续集成环境
关于c#的.Net FrameWork 的集成环境以及MsBuild的配置可以看 jenkins搭建.NET FrameWork持续集成环境 这篇文章 关于.NET Core 这个项目 ...
- 构建基于Jenkins + Github的持续集成环境
搭建持续集成首先要了解什么是持续集成,带着明确的目标去搭建持续集成环境才能让我们少走很多弯路.持续集成(Continuous integration)简称CI,是一种软件开发的实践,可以让团队在持续集 ...
- 使用Gradle构建构建一个Java Web工程及持续集成环境Jenkins配置
安装Eclipse插件——Buildship 什么是Buildship? Buildship能方便我们通过Eclipse IDE创建和导入Gradle工程,同时还能执行Gradle任务. Eclips ...
- Jenkins+Maven+Sonar系统持续集成环境部署以及配置
一.Jenkins介绍以及安装 什么是持续集成? 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Ag ...
随机推荐
- asp.net Form 认证【转】
第一部分 如何运用 Form 表单认证 一. 新建一个测试项目 为了更好说明,有必要新建一个测试项目(暂且为“FormTest”吧),包含三张页面足矣(Default.aspx.Logi ...
- Thread Dump 和Java应用诊断(转)
Thread Dump 和Java应用诊断 Thread Dump是非常有用的诊断Java应用问题的工具,每一个Java虚拟机都有及时生成显示所有线程在某一点状态的thread-dump的能力.虽然各 ...
- html学习 - 自己主动跳转与自己主动刷新
自己主动刷新 事实上自己主动刷新和跳转没啥差别,刷新就是跳转到本地址. 有几种办法,首先是直接在html的<head>标签里加入以下的代码. html代码 代码都放在<head> ...
- windows phone 获取手机图片库中图片(4)
原文:windows phone 获取手机图片库中图片(4) 前置条件:手机和电脑未连接或连接电脑Zune软件关闭(与Zune软件连接时不允许访问图片库): 版本7.1 获取手机图片库图片的两种方式: ...
- swift学习一:介绍,开发文档下载
在今天wwdc2014公布会上.苹果今天公布了全新的编程语言Swift以及新版Xcode.对于开发人员来说,Swift包括了非常多开发人员喜欢的功能,能够与Objective-C和C语言共同工作.Sw ...
- [置顶] 如何vs在cocos2dx项目中打印中文
一开始不是很理解,查了半天资料,终于找到解决方法,但是有部分中文还是不能打印出来,如 会出现部分的中文, 一开始都是问号的解决方法是 点击高级保存选项 设置成Unicode(UTF-8无签名) 这样就 ...
- 图像特效——摩尔纹 moir
%%% Moir %%% 摩尔纹 clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algo ...
- Android TextView里直接显示图片的三种方法
方法一:重写TextView的onDraw方法,也挺直观就是不太好控制显示完图片后再显示字体所占空间的位置关系.一般假设字体是在图片上重叠的推荐这样写.时间关系,这个不付源代码了. 方法二:利用Tex ...
- C# 几种方法来复制的阵列
突然接触到,所以就写一下共享. 首先说明一下,数组是引用类型的,所以注意不要在复制时复制了地址而没有复制数值! 事实上在复制数组的时候.一定要用new在堆中开辟一块新的空间专门用于存放数组.这样才是有 ...
- ExtJs迄今datefield控制设置默认值
假设extjs4 datefield日期控件设置默认值.为当天的前一月,和后一月 Ext.Date.MONTH 月 Ext.Date.YEAR 年 Ext.Date.DAY ...