05 2018 档案
摘要:前面每一个部分我们都是介绍的单个功能,这里介绍一个完整项目,本文中所用到的命令都放在了github示例代码仓库中 https://github.com/mrtylerzhou/netdevops 命令位于/projects/GitTest/cmds目录下 打开Jenkins,我们新建一个名为AFullBuild的项目 Source Code Management栏配置如上 Build T...
阅读全文
摘要:上一节我们讲解了如何Jenkins如何通过轮训来监听git仓库变化然后拉取最新代码,上一节中我们使用的是https方式,然后正式环境中企业更倾向使用ssh方式.这里我们讲解一下如何通在Jenkins中配置ssh. 首先打开Jekins我们创建一个名为PullOverSSH的项目 在Source Code Management栏里,我们仍然选择git,这次仓库地址我们输入ssh地址 Crede...
阅读全文
摘要:前面章节我们讲解了Jenkins结合.net平台工具以及一些第三方工具实现项目自动还原,自动编译,自动测试和自动发布.然而实现自动化还有一个关键的步骤就是监听源码仓库变化然后从仓库拉取最新代码,然后再执行刚才所说的步骤. 下面就讲一下Jenkins如何监听git仓库变化,如果有变化则拉取最新代码进行编译,测试和发布. 首先打开Jenkins,我们新建一个名为PollSCM的freestyle项目,...
阅读全文
摘要:笔者在发布项目的时候遇到这样一个问题,第一次发布的时候成功发布,然后再次发布失败.但是这个问题很快就排除了,这里提出来是为了帮助遇到这个问题的小伙伴,以顺利避开坑.之所以会这样是因为我们在设置权限的时候只给给了用户读和写的权限,而没有给删除权限,因此造成无法覆盖文件. 解决办法很简单,我们打开filezilla server,点击小人图标,进入用户设置页,然后点击shared folder进入目录...
阅读全文
摘要:上一节我们讲解了如何配置ftp服务端,本节我们讲解如何使用winscp搭建ftp客户端,为什么使用winscp而不是filezilla客户端版,前面我们简单说过,这里不再赘述. 下载winscp以后我们点击下一步直到安装完成,这里并没有什么需要注意的. 安装完成以后我们并不打开winscp因为我们需要自动化操作,图形化操作几乎无法完成自动化.我们对着winscp桌面图标右击,选择-属性,然后从属性...
阅读全文
摘要:上一节我们讲解了如何编译web项目,web项生成以后我们是手动复制到iis目录下的,这显然不符合devops初衷,这里我们讲解如何利用ftp协议把文件传到远程服务器的iis目录下. 这一讲分两部分一部分为ftp服务器的搭建,我们使用的是FileZilla server,另一部分是客户端环境的搭建,我们使用的是winscp.这里你可能会有疑问,filezilla也有客户端程序,为什么只在服务端使用f...
阅读全文
摘要:前面我们讲解了如何使用msbuild.exe编译一个.net程序.示例中我们讲解的是编译控制台项目,但是我们知道web项目不仅需要编译类的嵌入的资源文件,还要拷贝诸如css,html,js,图片等资源文件,比较旧的msbuild版本如果不对web项目作特殊处理则是不能复制这些资源文件的. 下面我们讲一下如何通过参数设置使得msbuild编译的web项目在编译时复制资源. 首先我们打开visual ...
阅读全文
摘要:上一节我们讲解了如何使用opencover生成单元测试覆盖率报告,opencover默认生成的report为xml格式,可读性并不是特别强,如果靠阅读opencover生成的results.xml来分析测试结果显然是非常耗费时间和精力的. 下面介绍一款工具,可以把opencover生成的xml覆盖率报告转化为交互的html. 继续使用上一节项目,使用nuget添加对reportgenerator的...
阅读全文
摘要:首先先介绍一下Opencover是什么,Opencover是.net平台下用于生成单元测试覆盖率报告的一款软件,是.net平台下为数不多的一款免费覆盖率报告工具,类似的工具还有Jetbrains的dotcover以衣VisualStudio自带的单元测试覆盖率工具,dotcover是付费软件,visualStudio自带的单元测试覆盖率报告工具仅限于在VisualStudio中使用,无法与Jenk...
阅读全文
摘要:有时候我们需要对从git上拉取的项目进行单元测通过以后才可以发布到测试环境,.net平台下单元测试的框架也很多例如mstest,nunit,xunit等,下面以Nunit为例讲解如何通过Jenkins对项目进行单元测试 关于如何使用单元测试框架,读者可以参考特定框架的官方文档或者网络博客,这里不对其进行展开. 首先我们新建一个NunitTest项目,新建项目以后,我们需要通过Nuget添加以下两个...
阅读全文
摘要:我们刚刚通过msbuild在Jenkins环境下把一个控制台项目生成exe可执行文件,如果我们引用了nuget包,也能够正常生成,但是我们知道,我们在把项目提交到git或者svn上的时候并不包含这些包,我们把项目从git上拉到下来后用vs打开,vs会首先来还原这些nuget包,同样,如果我们是使用msbuild.exe来构建这些项目,也需要首先还原nuget包,否则项目由于缺少依赖而无法正常编译,...
阅读全文
摘要:前面我们讲解了关于Jenkins的一些基本知识,通过这些知识我们可以结合一些其它工具实现更为复杂的任务,本篇我们将介绍如何使用msbuild工具结合Jenkins实现构建一个.net控制台框. 首先我们打开visual studio创建一个控制台程序,叫作ConsoleBuildTest,如下图示 此时,打开windows cmd输入msbuild,如果会出现如下类似界面 则cmd可以...
阅读全文
摘要:通过前面我们讲解了如何通过Jenkins执行windows command,powershell脚本,此时我们便可以开始完成一些简单任务了,然而可能看到我们都是通过手动按下Build Now按钮来执行任务构建的,有些时候我们可能需要定时执行一些脚本,Jenkins也是支持的,下面就讲一下如何使用Jenkins执行定时任务. 我们新建一个自由式(FreeStyle Project)任务,命名为per...
阅读全文
摘要:之前章节提到过powershell,如果需要构建复杂的任务时,使用cmd不是很方便(也可能是由于笔者不太熟悉cmd命令,这里见笑了),这时候powershell就派上用场了,这里并不详细介绍powershell脚本,如果有需要以后另开章节讲解powershell基本命令,powershell面向对象编程,powershell脚本调试,C#编写powershell cmdlet,powershell...
阅读全文
摘要:首先先简单讲一下Jenkins构建任务各种图标的含义 我的主界面有以下构建任务,这里前两列都是图标,第一列为构建的状态,前面已经讲过蓝色代表成功,红色代表失败.当然那是针对一次构建,一个构建任务可能有多次构建,这里的蓝色并不能完全代表任务就是构建成功的,还要结合后面的天气图标来决定,此外,我们看到这里还多出一种没有见到过的状态指示球:灰色球,这里灰色球代表该任务处处于禁用状态或者常未执行过一次...
阅读全文
摘要:通过前面章节讲解我们已经创建了构建任务,我们已经进入了三层目录,如何回到上一级界面?如何直接回到主界面?如何知道我当前所在的位置? 我们看一下红框框选的部分,为Jenkins导航树,从这个导航树,很多管理类网站都有类似的导航功能,相信大家并不陌生.从这里我们很容易看到当前所处的位置,我们也可以点击节点上的文字跳到指定导航级别.比如我们点击AnewItem就会进入#1的上一级,当然Jenkins...
阅读全文
摘要:简单了解了Jenkins界面之后,下面我们简单介绍一下如何使用jenkins创建一个任务.打开Jenkins web管理界面之后,点击左侧最上方的NewItem图标 便会进入如下界面 产生要输入一个构建项目名称,否则将无法创建项目,输入项目名称后,下面jenkins提供了多种项目模板,比如自由式项目,管道,多分支管道,外部工作等,其中自由式项目是最为常用和通用的,也是后面章节我们主要讲...
阅读全文
摘要:安装完Jenkins后,打开浏览器,在浏览器地址栏内输入http://localhost:8080/ 便可以打开jenkins 基于web的管理界面(如果你在安装过程中修改了Jenkins默认端口,则此处应是相应端口号),打开后界面如下图所示: 当然,你初次打开看到的内容可能跟我的不一样,我的已经存在不少构架项目的,但是整体页面的布局是一样的,大致分为两栏:左边是导航工具栏,点击相应的带有图标...
阅读全文