Jenkins持续集成 入门实践
本文测试环境: 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持续集成 入门实践的更多相关文章
- fir.im weekly - 「 持续集成 」实践教程合集
我们常看到许多团队和开发者分享他们的持续集成实践经验,本期 fir.im Weekly 收集了 iOS,Android,PHP ,NodeJS 等项目搭建持续集成的实践,以及一些国内外公司的内部持续集 ...
- jenkins持续集成简介[一]
标签(linux): jenkins 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 什么时持续集成? Continuous integration(CI) 持续 ...
- Linux-GitLab+Jenkins持续集成+自动化部署
GitLab+Jenkins持续集成+自动化部署 什么是持续集成? (1)Continuous integration (CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个 ...
- Jenkins持续集成学习-Windows环境进行.Net开发4
目录 Jenkins持续集成学习-Windows环境进行.Net开发4 目录 前言 目标 Github持续集成 提交代码到Github 从Github更新代码 git上显示构建状态 自动触发构建 Gi ...
- .NET持续集成与自动化部署之路第一篇——半天搭建你的Jenkins持续集成与自动化部署系统
.NET持续集成与自动化部署之路第一篇(半天搭建你的Jenkins持续集成与自动化部署系统) 前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛 ...
- Jenkins持续集成【简介】
1.1 目前主流网站部署的流程 目前主流网站部署方法,通过Hudson/Jenkins工具平台实现全自动部署+测试,是一个可扩展的持续集成引擎,是一个开源软件项目,旨在提供一个开放易用的软件平台 ...
- Jenkins持续集成企业实战系列之Jenkins持续集成简介及安装-----02
1. Jenkins持续集成简介 注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. 最初接触Jenkins也是由于公司需求, ...
- Jenkins持续集成企业实战
阅读目录: Jenkins持续集成企业实战1.1 目前主流网站部署的流程1.2 Jenkins持续集成简介1.3 Jenkins持续集成组件1.4 Jenkins平台安装部署1.5 Jenkins相关 ...
- 手把手教你利用Jenkins持续集成iOS项目
前言 众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段.用户们都是很挑剔的.如果一个公司的推广团队好不容易砸了重金推广了一个APP,好不容易有了一些用户,由于一次线上的bug导致一 ...
随机推荐
- 修改tp5的默认配置文件的位置
web |--application | |--admin | |--home | | |--controller | | |--model | | |--view | | |--extra 5.01 ...
- 146. 大小写转换 II
146. Lowercase to Uppercase II Description Implement an upper method to convert all characters in a ...
- python高级——垃圾回收机制
GC作为现代编程语言的自动内存管理机制,专注于两件事:1. 找到内存中无用的垃圾资源 2. 清除这些垃圾并把内存让出来给其他对象使用.GC彻底把程序员从资源管理的重担中解放出来,让他们有更多的时间放在 ...
- ajax 浏览网页等待页面
- [BZOJ3339]Rmq Problem / mex
Description: 有一个长度为n的数组{a1,a2,-,an}.m次询问,每次询问一个区间内最小没有出现过的自然数. Hint: \(n \le 2*10^5\) Solution: 主席树好 ...
- BZOJ1515 : [POI2006]Lis-The Postman
首先,如果这个图本身就不存在欧拉回路,那么显然无解. 对于每个子串: 1.如果里面有不存在的边,那么显然无解. 2.如果里面有一条边重复出现,那么显然也无解. 3.对于每条边,维护其前驱与后继,若前驱 ...
- Tarjan求强连通分量 缩点
强连通分量的定义: 在一张有向图中,如果两个点u,v之间能相互到达则称这两个点u,v是强连通的,在这个基础上如果有向图G中的任意两个顶点都强连通,那么称图G是一个强连通图.有向非强连通图的极大强连通子 ...
- Android Studio 解决ADB检测不到手机导致无法连接的问题
ADB的全称是Android Debug Bridge,是用来管理模拟器和真机的通用调试工具. 开USB调试 方法:手机设置 - 开发人员选项 - USB调试 - 勾选(开发者调试被隐藏了,在关于手机 ...
- PAT基础6-8
6-8 简单阶乘计算 (10 分) 本题要求实现一个计算非负整数阶乘的简单函数. 函数接口定义: int Factorial( const int N ); 其中N是用户传入的参数,其值不超过12.如 ...
- Linux命令第四篇
作业四: 1) 新建目录/test/dir,属主为tom,数组为group1,/test目录的权限为777 # useradd tom [root@localhost /]# groupadd gr ...