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

 

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:

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

时间: 2024-10-11 08:42:11

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

Net 项目构建基于Jenkins + Github + Mono 的持续集成环境

Net 项目构建基于Jenkins + Github + Mono 的持续集成环境 阅读目录 1 安装 2 配置 3 测试 在Redhat enterprise 6.5 的服务器上,为在gutub 上的 .net 项目构建一个持续集成环境,用到了Jenkins和mono.因公司的服务器在内网,访问外网时要通过代理,所以在很多步骤都加上了代理,如果你的服务器可以直接访问外网,则可以去掉代理. 回到顶部 1 安装 首先要在Redhat服务器上安装必要的工具. 1.1 安装Java 先检查版本,要求1

Redhat上为java Maven项目构建基于Jenkins + Github的持续集成环境

在Redhat enterprise 6.5 的服务器上,为在gutub 上的 java mvaen项目构建一个持续集成环境,用到了Jenkins.因公司的服务器在内网,访问外网时要通过代理,所以为maven加上了代理,如果你的服务器可以直接访问外网,则可以去掉代理..net 项目可参考 <在Redhat上为.Net 项目构建基于Jenkins + Github + Mono 的持续集成环境> 1. 安装 maven wget -e "http_proxy=http://web-pr

构建基于Jenkins + Github的持续集成环境

搭建持续集成首先要了解什么是持续集成,带着明确的目标去搭建持续集成环境才能让我们少走很多弯路.持续集成(Continuous integration)简称CI,是一种软件开发的实践,可以让团队在持续集成的基础上收到反馈并加以改进,不必等到开发的后期才寻找和修复缺陷.当然要明白的是持续集成环境的搭建也不是一劳永逸的,随着软件项目复杂度的增加,持续集成的环境同样要加以维护以确保集成环境的可靠性. 持续集成的重要要素:1.统一的代码库. 2.CI服务器 3.自动化测试和构建的脚本 4.Slaves 持

使用Gradle构建构建一个Java Web工程及持续集成环境Jenkins配置

安装Eclipse插件——Buildship 什么是Buildship? Buildship能方便我们通过Eclipse IDE创建和导入Gradle工程,同时还能执行Gradle任务. Eclipse上安装Buildship 建议直接去Eclipse market处下载,简单方便,如下图: Buildship的更多信息 请参考以下链接,有教程,比较简单, 主要内容: 如何导入Gradle工程, 如何创建Gradle工程, 如何执行Gradle任务, 等... http://projects.e

[转] 基于Gitlab CI搭建持续集成环境

[From] https://blog.csdn.net/wGL3k77y9fR1k61T1aS/article/details/78798577 前言 本文是在12月12号迅雷@赵兵在前端早读课第三期Live中提到的关于CI构建的,可能这部分在不同公司由不同的岗位负责,刚好如果你没遇到你可以看看. @赵兵,来自迅雷前端团队.是一个热爱前端技术,喜欢造轮子,爱折腾的人,也是一个奉行"懒惰使人进步"的懒人工程师. 正文从这开始- 本文简单介绍了持续集成的概念并着重介绍了如何基于 Gitl

Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目

前文使用Docker搭建Jenkins+Docker持续集成环境我们已经搭建了基于docker+jenkins的持续集成环境,并构建了基于maven的项目.这一节,我们继续扩展功能,增加对Nodejs的支持,实现nodejs项目构建.并打包成docker镜像和自动部署. 1. 配置Nodejs环境 1.1 安装nodejs插件 打开系统管理——管理插件——可选插件,搜索NodeJS,选择NodeJS Plugin安装 1.2 配置nodejs 版本 系统管理 —— 全局工具配置 —— NodeJ

基于 Jenkins 快速搭建持续集成环境

持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础.Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件平台,使持续集成变成可能.本文正是从持续集成的基本概念入手,通过具体实例,介绍了如何基于 Jenkins 快速搭建持续集成环境. 持续集成概述 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变

一步步部署基于Windows系统的Jenkins持续集成环境

如题:本文将介绍如何在Windows环境下运用Jenkins部署持续集成环境.之所以写本文,是因为在最近工作当中,学习使用Jenkins时,确实遇到了一些问题,而大多数教程文档都是基于Mac或是Linux平台.为此很是头疼,经过一番摸索,终于走通了Windows平台下的一条路. 本CI系统流程:Dev提交代码,并merge到master分支-->Jenkns获取最新代码,开始构建(解析git触发响应,build solution,run automation,get result都在此步内完成)

实战docker+jenkins+git构建持续集成环境

本文重点介绍jenkins以及让jenkins如何实现在docker容器中运行.jenkins和docker私有仓库又是怎么结合的.docker说明及安装和git说明及安装在本文中不会特别详细的介绍. ?并且,在本文中不着重介绍原理性的东西,比如不会介绍什么是持续集成.持续构建等等.本文的重点是实战为主.对持续集成.持续交互.持续部署不太了解的朋友可以参考这篇文章了解一下:https://www.zhihu.com/question/23444990 1.背景说明 Jenkins是一个开源软件项