本文测试环境: ASP.NET MVC项目,Windows 7环境,SVN代码仓库, MSBuild,TortoiseSVN

持续集成这种工具很多了,Jenkins比较常用,他的原理就是一个服务,有一个管理网站,可以去你指定的代码仓库获取代码文件,可以设置什么时候,什么情况下去触发,到仓库获取文件。一般的用法是开发者commit代码到仓库时,Jenkins获取最新的代码,编译生成发布,执行单元测试等,copy到测试环境(部署),这一整个过程的自动化执行,并且伴随开发过程中的代码提交,这个过程一直在执行,Jenkins就是这样一个工具。这样做的目的是,一个项目有N个模块时,每个人只开发自己的一些模块,每完成一次提交,通过持续集成就能检测整个项目系统的情况,防止等到最后发现某一个模块有问题。试想一下,一个设备有N个零件组成,当设备在组装时已经确认所有零件是合格的,因为每个零件完成时都做了严格的测试。如果有零件不合格,到组装成品时才发现,这个影响就大了。

Jenkins的安装,没什么好说的,官方下载,按跟说明做就行了(需要java环境)。安装完需要安装一些插件,注意Jenkins有N多的插件可以选择,我这里安装了MSBuild, Subversion等,有些插件是有依赖项,它会自动安装相关的依赖。

安装完需要的插件后,就可以添加任务了。录入任务信息,设置源代码仓库的位置、帐号,怎么触发,怎么构建等等。

因为我上面只安装的subversion,这里会出现一个subversion的选项,配置好项目的SVN地址,SVN访问帐号等。其它Jenkins下面还有Git等其它插件。

触发设置,就是在什么情况下Jenkins从代码仓库获取文件,注意看这里有好几个选项,点击?图标有提示。常见的有Jenkins去轮询SVN是否有新的提交(SCM),如有则执行;还有一种是在SVN端设置一个触发钩子,当有新的提交时通知Jenkins。这里使用SCM方式,日程表就是轮询的频率设置,这个和Linux里的Contab表达式是一样的,此处为周一到周五每天的9:00到18:00,每隔5分钟轮询一次。

拿到代码以后,如何构建,这个就是重点了,我这里是.NET项目,那就用MSBuild工具来编译生成了,其它平台有对应的插件和工具,关于MSBuild是一个非常强大的命令行工具,可以查询MSDN或MSBuild /h查看详情。

注意看这里的构建步骤,可以有很多个,你可以根据实际情况,先后顺序来做很多步的处理,可以把相关的操作放到一个bat或者ps1脚本里来处理,我这里处理步骤是下载完源代码后,先还源nuget引用 (这里使用了nuget官方提供的windows上的命令行工具nuget.exe),然后调用MSBuild编译生成。这一步的配置,可以先在命令行测试一下。(后面的发布,测试,部署我还没有试)

任务添加完之后,就可以在Jenkins里自动执行了,或者点击“立即构建”测试一下。

点击构造记录,可以查看本次运行的详细信息,还可以看控制台输出等信息。

Jenkins持续集成 入门实践的更多相关文章

  1. fir.im weekly - 「 持续集成 」实践教程合集

    我们常看到许多团队和开发者分享他们的持续集成实践经验,本期 fir.im Weekly 收集了 iOS,Android,PHP ,NodeJS 等项目搭建持续集成的实践,以及一些国内外公司的内部持续集 ...

  2. jenkins持续集成简介[一]

    标签(linux): jenkins 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 什么时持续集成? Continuous integration(CI) 持续 ...

  3. Linux-GitLab+Jenkins持续集成+自动化部署

    GitLab+Jenkins持续集成+自动化部署 什么是持续集成? (1)Continuous integration (CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个 ...

  4. Jenkins持续集成学习-Windows环境进行.Net开发4

    目录 Jenkins持续集成学习-Windows环境进行.Net开发4 目录 前言 目标 Github持续集成 提交代码到Github 从Github更新代码 git上显示构建状态 自动触发构建 Gi ...

  5. .NET持续集成与自动化部署之路第一篇——半天搭建你的Jenkins持续集成与自动化部署系统

    .NET持续集成与自动化部署之路第一篇(半天搭建你的Jenkins持续集成与自动化部署系统) 前言     相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛 ...

  6. Jenkins持续集成【简介】

    1.1 目前主流网站部署的流程    目前主流网站部署方法,通过Hudson/Jenkins工具平台实现全自动部署+测试,是一个可扩展的持续集成引擎,是一个开源软件项目,旨在提供一个开放易用的软件平台 ...

  7. Jenkins持续集成企业实战系列之Jenkins持续集成简介及安装-----02

    1.      Jenkins持续集成简介 注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.    最初接触Jenkins也是由于公司需求, ...

  8. Jenkins持续集成企业实战

    阅读目录: Jenkins持续集成企业实战1.1 目前主流网站部署的流程1.2 Jenkins持续集成简介1.3 Jenkins持续集成组件1.4 Jenkins平台安装部署1.5 Jenkins相关 ...

  9. 手把手教你利用Jenkins持续集成iOS项目

    前言 众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段.用户们都是很挑剔的.如果一个公司的推广团队好不容易砸了重金推广了一个APP,好不容易有了一些用户,由于一次线上的bug导致一 ...

随机推荐

  1. 富文本编辑器上传图片需要配置js,后台代码

    富文本编辑器上传图片需要配置js,后台代码

  2. Google Hack搜索技巧

    想了解更多搜索技巧,点击下面网站了解http://exploit-db.com/google-dorks Google Hack的一些整理 这里是google关键字的用法,要设置它为中文,则是 htt ...

  3. linux学习笔记 less命令

    空格 或者 ctrl+f  前进一屏     ctrl+b  后退一屏幕 回车 前进一行 /string                  查找含有string字符串的页 ?string        ...

  4. Asp.Net判断文件是否存在

    在上传文件时经常要判断文件夹是否存在,如果存在就上传文件,否则新建文件夹再上传文件 判断语句为 if (System.IO.Directory.Exists(Server.MapPath(" ...

  5. Java数组常用方法

    数组基础:http://www.cnblogs.com/mengdd/archive/2013/01/04/2844264.html import java.util.Arrays; 1):创建数组 ...

  6. js几个经典的题目详解

    直接看题目,先不要急着看答案 先自己思考,收获更多 一 var out = 25, inner = { out: 20, func: function () { var out = 30; retur ...

  7. HDU.4700.Flow(构造 最小割树)

    题目链接 \(Description\) 给定\(n\)以及\(n\)个点任意两点之间的最大流,求一张无向图满足给定条件. \(n\leq100\). \(Solution\) 有些类似最小割树. 我 ...

  8. 机器学习系列-tensorflow-01-急切执行API

    tensorflow急切执行概述 Eager execution is an imperative, define-by-run interface where operations are exec ...

  9. Shell脚本笔记(二)Shell变量

    Shell变量 一)全局环境变量 全局变量对于定义它的shell和其子shell都是可见的,但如果生成它的shell被终止,全局变量也就消失了.另外全局变量会被子shell的同名变量覆盖. #定义一个 ...

  10. HashMap实现原理(jdk1.7/jdk1.8)

    HashMap的底层实现: 1.简单回答 JDK1.7:HashMap的底层实现是:数组+链表  JDK1.8:HashMap的底层实现是:数组+链表/红黑树     为什么要红黑树?  红黑树:一个 ...