3.1    Jenkins安装    2

3.1.1    Jenkins下载    2

3.1.2    Jenkins 安装    2

3.1.3    Jenkins 目录结构    3

3.2    Jenkins系统管理    3

3.2.1    系统配置    4

3.2.2    插件管理    4

3.3    创建一个任务    5

3.3.1    安装MSBuild Plugin插件    5

3.3.2    创建新任务    6

3.4    自动测试    8

3.4.1    相关插件安装    9

3.4.2    配置任务    9

3.5    代码质量管理    11

3.5.1    相关插件安装    12

3.5.2    使用FxCop分析程序集    12

3.5.3    使用StyleCop审查代码    13

3.5.4    展示分析结果    14

3.6    用户权限管理    16

3.6.1    使用系统自带的授权机制    16

3.6.2    Role-basedAuthorization Strategy授权机制    17

3.7    构建通知    19

3.7.1    通过邮件通知    19

3.7.2    通过实时消息通知    20

  1. Jenkins安装

  2. Jenkins下载

    由于Jenkins是开源的,可以直接下载其源代码自行编译,也可以下载发布好的文件,下载地址为:http://mirrors.jenkins-ci.org/war/latest/jenkins.war

  3. Jenkins 安装

    Jenkins是用Java语言开发的系统,首先要确定服务器上已经安装JDK或者JRE。

    安装方式一

    直接运行java –jar Jenkins.war,在浏览器中输入 http://localhost:8080即可。

    安装方式二

    安装Tomcat。

    添加环境变量JENKINS_HOME,该变量为jenkins系统的工作目录,如下图:

    (注意:该目录对于jenkins极为重要,系统所有相关的配置、数据文件等都存放于此,所以一定要确保该目录有足够的空间)。

    修改Tomcat 程序conf/server.xml文件,在Host结点下添加<Context path="/jenkins" docBase="G:\WWWRoot\jenkins\jenkins.war" reloadable="true" />,其中path表示jenkins系统的访问跨径,docBase表示jenkins程序文件所在位置。

    启动Tomcat,输入http://localhost:8080/jenkins打开系统,如下图,(如能正常打开系统,表示系统安装成功)。

  4. Jenkins 目录结构

    Jenkins 所有数据存放在JENKINS_HOME所设置的目录下,如果没设置此变量,数据将会保存在 我的文档/.jenkins目录下。目录结构如下:

    JENKINS_HOME

    +- config.xml (配置文件)

    +- *.xml (其它配置文件)

    +- userContent (用户授权文件)

    +- plugins (插件)

    +- jobs

    +- [JOBNAME] (存放所有的Job的文件)

    +- config.xml (job 配置文件)

    +- workspace (存放系统代码)

    由于Jenkins没有数据库存,所以备份、删除、移动数据非常方便。备份是要备份JENKINS_HOME目录即可,恢复时要先停止jenkins。对于移动或删除jobs,只需要简单地移动或删除%JENKINS_HOEM%\jobs目录。对于修改jobs的名字,只需要简单地修改%JENKINS_HOEM%\jobs下对应job的文件夹的名字。对于不经常使用的job,只需要对%JENKINS_HOEM%\jobs下对应的jobs的目录zip或tar后存储到其他的地方。

  5. Jenkins系统管理

    在使用系统之前,还需要对系统进行一些基本的配置,如下图:

  6. 系统配置

    系统配置是Jenkins配置中非常重要的一个页面,如下图。

    在系统配置页面,可以配置JDK、MSBuild、源代码控制等。几乎所有的插件安装后有需要配置的都会在这里呈现。

  7. 插件管理

    Jenkins是一个可扩展的系统,其很多功能都利益于各式各样的插件,现Jenkins中已有超过200个各种不同功能的插件。所以插件对于Jenkins是非常重要的。

    Jenkins的插件安装可离线安装,也可在线安装。打开插件管理页面,如下图:

    在这里可轻松的管理插件。

    注意:插件安装完成后,一般需要重启系统,还需要到系统配置页面对插件进行配置,插件才能起作用。

  8. 创建一个任务

  9. 安装MSBuild Plugin插件

    在创建一个任务之前,需要添加一些必须的插件。由于例子是C#写的,首先需安装MSBuild插件

    安装完MSBuild Plugin插件后,还需在系统配置里进行配置。进入系统配置目录,找到刚安装的插件

    点击MSBuild安装,添加MSBuild的配置,如下图,分别添加了.NET FrameWork 4.0 32位和64位MSBuild.exe,在创建任务选择用MSBuild构建时,将同时用32、64位的MSBuild.exe去编译。

    红色框中是MSBuild.exe的路径。

  10. 创建新任务

    点击新建Job,输入任务名称,如下图,选择构建一个自由风格的软件项目,点击确定按钮,进入Job详细配置界面。

    为了能完成一次基本的构建,至少需要做如下设置,在源码管理选项,选择源代码管理工具。

    例子中选择Git作为源代码管理工具,还需安装 Git Plugin和Git Client Plugin作为插件。系统自带SVN插件,若用SVN做源代码管理,则无需再去安装插件。

    选择了代码管理工具,还一关键的一步,添加构建。

    点击增加构建,选择前面安装的MSBuild,将构建文件设置为项目文件,如下图:

    完成这些基本配置后,点击保存按钮,保存配置,返回任务界面,点击立即构建,Jenkins将会自动重源代码服务获取代码,并编译,并显示构建状态。

    红色图标表示构建失败,绿色图标表示构建成功。可以点击控制台输出查看详细的构建信息。

  11. 自动测试

  12. 相关插件安装

    对于C#语言,在自动化测试中,可以用到如下插件:

  • Jenkins MSTestRunner plugin:系统使用MSTest来测试;
  • Jenkins NUnit plugin:系统使用NUit来测试;
  • JENKINS MSTest plugin:来发布MSTest的测试结果。

本例以MSTestRunner和MSTest plugin来作为例子来说明。首先到系统的插件管理界面安装这两个插件,如下图

安装完这两个插件后,重启Jenkins。打开系统配置界面,还需对MSTest进行配置。

红色框是MSTest.exe的路径位置,该工具为VS自带工具。

  1. 配置任务

    安装完前面的插件后,通过配置,就可以让Jenkins在构建的时候自动运行测试用例。

    打开任务的配置界面,在构建项,选择添加构建,运行单元测试。

    添加相关配置,测试文件为我们测试项目所生成的dll或者exe文件。测试结果文件为MSTest.exe所产生的测试结果文件,文件后缀为trx。注意:这里文件是相对路径,相对于项目的路径。

    完成了这一步的配置,系统在构建的时候,就能自动运行测试用例,但系统还不能将测试结果展示出来,要展示结果结果,还需做如下配置。

    在任务配置的构建后的操作里,选择添加后构建后的操作,如下图。

    选择发布MSTest 测试结果报告。

    在测试报告文件中添加前面配置MSTest.exe生的结果文件。

    通过这些基本的配置,系统就能在构建的时候运行测试用例,并将测试结果展示出来。

    在每个任务的主页,有测试结果的统计图。

    对于每次的测试,都有很详细的信息展示。要查看某一次构建的测试结果,可以点击构建历史中的测试结果。

    在测试结果页面中,展示的测试结果的总体详细,点击某个测试名称,还能显示该测试的详细信息。

  2. 代码质量管理

  3. 相关插件安装

    对于C#语言,代码质量管理可用到如下插件:

  • Jenkins FxCop Runner plugin:该插件就是在构建的时候调用FxCop来分析代码。
  • Static Analysis Utilities
  • Jenkins Violations plugin:该插件主要用来展示各种分析工具所产生的结果。

在安装完Jenkins FxCop Runner plugin后,还需对其进行配置。点击系统管理,系统设置,如下图。

点击FxCop安装,设置FxCop程序的路径。

  1. 使用FxCop分析程序集

    FxCop是一个代码分析工具,它依照微软.NET框架的设计规范对托管代码assembly进行检查。它使用基于规则的引擎,来检查出你代码中不合规范的部分;也可以定制自己的规则加入到这个引擎。

    为了能让FxCop在构建系统时运行,还需在任务中添加配置。在构建项目,选择增加构建步骤,选择FxCop exec。

    添加配置信息。程序集名称为我们需要分析的项目所生成的程序集。输入xml文件为分析所产生的结果文件,为xml格式文件。

    完成好这些配置后,系统在构建的时候将会调用配置的工具进行代码分析。

  2. 使用StyleCop审查代码

    StyleCop的终极目标是让所有人都能写出优雅和一致的代码,因此这些代码具有很高的可读性。

    StyleCop不是代码格式化(代码美化)工具,而是代码规范检查工具(Code Review 工具),它不仅仅检查代码格式,而是编码规范,包括命名和注释等。

    StyleCop目的是帮助项目团队执行一系列常用的源代码格式规范,这些规范是关于如何开发布局规整,易读,易维护并且文档良好的优雅代码的 。

    StyleCop现在包含了 200 个左右的最佳实践规则(best practice rules),这些规则与 Visual Studio 2005 和 Visual Studio 2008 中默认的代码格式化规则是一致的。

    StyleCop安装

    StyleCop是微软的开源项目,可到http://stylecop.codeplex.com/下载最新的安装包。在安装该工具的时候,尽量默认安装,并且MSBuild files一定要选上,不然有可能导致不能正常使用。

    为了能让系统在构建时自动运行该工具,需编辑一下项目文件,添加如下配置:

  3. 展示分析结果

    在任务配置页面,构建后操作,增加构建后操作,选择Report Violations。

    在Report Violations配置页面,设置要展示的文件。我闪这里设置FxCop、StyleCop分析所产生的文件。值得注意的是,StyleCop所产生的文件是在obj\Debug目录下。

    完成这些配置后,重新构建任务。任务构建的主页会多出配置的分析报告。

    点击某一项,还可以进入该项的详细分析报表。

  4. 用户权限管理

  5. 使用系统自带的授权机制

    默认地Jenkins不包含任何的安全检查,任何人可以修改Jenkins设置、任务和启动构建等。显然地在大规模的公司需要多个部门一起协调工作的时候,没有任何安全检查会带来很多的问题。 我们可以通过以下2方面来增强Jenkins的安全:

  • Security Realm,用来决定用户名和密码,且指定用户属于哪个组;
  • Authorization Strategy,用来决定用户对那些资源有访问权限;

在系统管理,Configure Global Security页面中启用权限管理。

首先要启用安全,在安全域中选择Jenkins专有用户数据库,并选择允许用户注册。在授权策略选项中选择项目矩阵授权策略。设置好这些基本属性后,就是添加用户。

输入用户名,点击添加系统就添加了用户,但需注意,在这里只添加了用户名,添加的用户还不能登录,还需返回系统注册页面,注册一个与此设置的相同用户名的用户。如下图:

  1. Role-basedAuthorization Strategy授权机制

    打开系统管理,插件管理页面,安装Role-basedAuthorization Strategy插件。

    进入系统管理,系统设置,如下图所示:"安全域"选择使用Jenkins专有用户数据库,可以在初始化的时候勾选"允许用户注册";"授权策略"选择使用"Role-Based Strategy"。

    配置完成后在"系统管理"下新增选项"Manage and Assign Roles"。点击"管理用户"新建账户后即可进行账户,群组的安全策略配置。

    点击Manage and Assign Roles,进入如下界面,页面有添加角色,给角色授权功能。

    点击添加角色,进入角色管理页面。在这里有两种角色,一种是全局角色,一种是项目角色,一般用户需授这两种角色。

    点击Assing Roles,界面用户授权界面。注意:这里添加用户的方式与前面介绍的相同。

  2. 构建通知

  3. 通过邮件通知

    进行系统管理,系统设置页面,设置邮件服务器。

    配置完蛋邮件服务器后,进行任务配置页面,配置邮件通知。

    当完成一次构建后,系统将发送详细的构建信息,如下图。

  4. 通过实时消息通知

    实时消息通知有两种方式,一种是通过Jabber,另一种是通过IRC的方式通知。例子通过Jabber的方式来说明。

    Jabber 是著名的Linux即时通讯服务服务器,它是一个自由开源软件,能让用户自己架即时通讯服务器,可以在Internet上应用,也可以在局域网中应用。Jabber最有优势的就是其通信协议,可以和多种即时通讯对接。

    安装Jabber实时通讯服务器

    到http://www.igniterealtime.org 下载Openfire和Spark。其中Openfire为服务器,Spark为客户端。

    安装好Openfire服务器后,启动相关服务,在其管理界面添加用户。这里新建用户jenkins作为Jenkins系统的账户,如下图。

    为了能上Jenkins能使用Jabber服务,还需安装下图所显示的两个插件。

    安装完这两个插件后,进行系统管理,系统设置页面,配置Jabber插件。

    完成配置后,开发人员可通过Jabber客户端与Jenkins系统交互。Jenkins每次构建后,都将会给用户发送消息,如下图。

    开发人员,还可以通过这个工具与Jenkins服务器交互,如下图。

Jenkins 使用学习笔记的更多相关文章

  1. Jenkins 学习笔记

    Jenkins 的内容网站蛮多的,但是一开始我看起来确实很费劲.似乎好多东西都是悬空的,没有把底层的信息交代清楚. 我把自己对于 Jenkins 的探索过程记录下来,如下. 目录 Jenkins 学习 ...

  2. python + unittest 做单元测试之学习笔记

    单元测试在保证开发效率.可维护性和软件质量等方面有很重要的地位,所谓的单元测试,就是对一个类,一个模块或者一个函数进行正确性检测的一种测试方式. 这里主要是就应用 python + unitest 做 ...

  3. SpringCloud微服务学习笔记

    SpringCloud微服务学习笔记 项目地址: https://github.com/taoweidong/Micro-service-learning 单体架构(Monolithic架构) Mon ...

  4. Puppet学习笔记(CentOS6.3+Puppet3.01)

    Puppet学习笔记(CentOS6.3+Puppet3.01)  技术 Add comments Oct262012 下了决心,好好学习puppet,周末专门去参加一个puppet的培训,难得朋友那 ...

  5. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  6. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  7. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  8. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  9. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

随机推荐

  1. hdu4848 求到达每一个点总时间最短(sum[d[i]])。

    開始的时候是暴力dfs+剪枝.怎么也不行.后来參考他人思想: 先求出每一个点之间的最短路(这样预处理之后的搜索就能够判重返回了).截肢还是关键:1最优性剪枝(尽量最优:眼下的状态+估计还有的最小时间& ...

  2. T-SQL 之 事务

    事务全部是关于原子性的.原子性是指可以把一些事情当做一个单元来看待.从数据库的角度看,它是指应全部执行或全部都不执行的一条或多条语句的最小组合. 事务要有非常明确的开始和结束点.SQL Server中 ...

  3. PHP表单- PHP $_GET 变量

    PHP $_GET 变量 在 PHP 中,预定义的 $_GET 变量用于收集来自 method="get" 的表单中的值. $_GET 变量 预定义的 $_GET 变量用于收集来自 ...

  4. 算法笔记_174:历届试题 地宫取宝(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明 ...

  5. 编译时:virtual memory exhausted: Cannot allocate memory(转)

    一.问题 当安装虚拟机时系统时没有设置swap大小或设置内存太小,编译程序会出现virtual memory exhausted: Cannot allocate memory的问题,可以用swap扩 ...

  6. maven 找不到或无法加载主类

      maven 找不到或无法加载主类 CreateTime--2018年4月19日22:58:14 Author:Marydon 1.情景还原: 在maven管理的web项目中,单独运行Java类报错 ...

  7. python之函数用法locals()

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法locals() #locals() #说明:查找局部变量,返回一个名字/值对的字典对 ...

  8. 【laravel5.4】引入自定义类库+卸载已有的自定义库(以引入钉钉应用为例)composer dumpautoload -o

    本文之前,首先感谢: Azeroth_Yang  传送门:https://blog.csdn.net/zwrj1130/article/details/73467320 强烈建议引入的类 都是含有命名 ...

  9. 关于PHP中的opcode

    简介 1.当Zend engine解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode),opcode是一个四元组,(opcode, ...

  10. HDUOJ----4509湫湫系列故事——减肥记II

    湫湫系列故事——减肥记II Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Tot ...