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导致一 ...
随机推荐
- box-shadow阴影 三面显示
想弄个只显示三面的阴影效果,网上一搜没有解决根本问题,最后还是在css3演示里面找到方法http://www.css88.com/tool/css3Preview/Box-Shadow.html 我把 ...
- POJ 2594 Treasure Exploration (Floyd+最小路径覆盖)
<题目链接> 题目大意: 机器人探索宝藏,有N个点,M条边.问你要几个机器人才能遍历所有的点. 解题分析: 刚开始还以为是最小路径覆盖的模板题,但是后面才知道,本题允许一个点经过多次,这与 ...
- 003.Ceph扩展集群
一 基础准备 参考<002.Ceph安装部署>文档部署一个基础集群. 二 扩展集群 2.1 扩展架构 需求:添加Ceph元数据服务器node1.然后添加Ceph Monitor和Ceph ...
- 超出JavaScript安全整数限制的数字计算-BigInt
JavaScript中的基本数据类Number是双精度浮点数,它可以表示的最大安全范围是正负9007199254740991,也就是2的53次方减一,在浏览器控制台分别输入Number.MAX_SAF ...
- python 数据结构之二叉树
二叉树关键在构建和遍历,python实现相对简单,我们在实现需要用到类,分别设置爱左右子树,根节点,然后从根进行遍历,进行判断,若为空进行树的构建,非空则返回到列表中即可,我在进行遍历时产生了一个错误 ...
- PTA 5-3 解题报告
GitHub 问题描述 解题思路 代码 问题描述 5-3 计算平均值 (50分) 现在为若干组整数分别计算平均值. 已知这些整数的绝对值都小于100,每组整数的数量不少于1个,不大于20个. 输入格式 ...
- Java笔记(十五) 并发包
并发包 Java中还有一套并发工具包,位于包java.util.concurrent下,里面包括很多易用 且很多高性能的并发开发工具. 一.原子变量和CAS 为什么需要原子变量,因为对于例如count ...
- 利用"SQL"语句自动生成序号的两种方式
1.首先,我们来介绍第一种方式: ◆查询的SQL语句如下: select row_number() over (order by name) as rowid, sysobjects.[id] fro ...
- [P2704][NOI2001]炮兵阵地 (状态压缩)
最近抄状压的代码…… 然后盯上了这个题目 调试了一个晚上,终于A了 但是是对着宝典打的,我依然不懂状态压缩 那么下一步先把装压放一放,学一下树形DP吧 #include<cstdio> # ...
- mysql找安装路经,更改密码
1:如果安装了mysql但是启动不了,可以到C:/Windows/System32的cmd.exe,用管理员身份打开,然后输入net strat mysql即可 2:忘记安装路经 sele ...