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导致一 ...
随机推荐
- 关于go get安装git golang项目时报错的处理办法
关于go get安装git golang项目时报错的处理办法 使用go get安装github上的项目时一般来说,不可避免会出错.各种错误的处理办法: 必须条件: 1.安装git并配置环境变量.下载地 ...
- win10安装Oracle11g,出现INS-13001环境不满足最低要求问题
今天安装Oracle11g,出现INS-13001环境不满足最低要求问题: 解决方法 在安装时点击setup.exe之后,出现了:[INS-13001]环境不满足最低要求 这时,打开你的解压后的dat ...
- Django之认证系统
Django之认证系统 cookie和session 1.cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞 ...
- python开发之虚拟环境管理:virtualenv、virtualenvwrapper、pycharm
1 引言 进行Python开发时,多个项目可能使用到不同的依赖,例如A项目需要1.8版本的Django,而B项目需要2.0版本的Django,这时候如果没有使用虚拟环境,就需要来回卸载和安装Djang ...
- python 词云小demo
词云小demo jiebawordcloud 一 什么是词云? 由词汇组成类似云的彩色图形.“词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过 ...
- 在UnrealEngine中用Custom节点实现马赛克效果
参考这位大神的Shaderhttp://blog.csdn.net/noahzuo/article/details/51316015 //input BaseUV 屏幕UV //intput Tili ...
- BZOJ.1812.[IOI2005]Riv 河流(树形背包)
BZOJ 洛谷 这个数据范围..考虑暴力一些把各种信息都记下来.不妨直接令\(f[i][j][k][0/1]\)表示当前为点\(i\),离\(i\)最近的建了伐木场的\(i\)的祖先为\(j\),\( ...
- MySql基础笔记(二)Mysql语句优化---索引
Mysql语句优化--索引 一.开始优化前的准备 一)explain语句 当MySql要执行一个查询语句的时候,它首先会对语句进行语法检查,然后生成一个QEP(Query Execution Plan ...
- [JSOI2018]列队
Description: 作为一名大学生,九条可怜在去年参加了她人生中的最后一次军训. 军训中的一个重要项目是练习列队,为了训练学生,教官给每一个学生分配了一个休息位置.每次训练开始前,所有学生都在各 ...
- BZOJ5057 : 区间k小值5
整体二分,按时间顺序依次考虑对于权值落在$[l,r]$内的所有操作. 对于每个修改操作,若权值范围完全包含了$[l,r]$,那么在更深层的分治中它都完全包含它,对每个询问的贡献是定值,因此在当前层将贡 ...