首页 > 代码库 > 云端持续集成——AppVeyor拥抱GitHub

云端持续集成——AppVeyor拥抱GitHub

想着你正在做一个网站

终于大功告成了,提交了代码后,你按下了开发环境的Build菜单,一杯咖啡后,Build Succeed,然后连接服务器,开始部署

当你乐滋滋的享受着你的开发成果时,突然发现了一个bug!于是你再次修改代码,build,部署

发现bug … 修改 … build … 部署…

发现bug … 修改 … build … 部署…

No! 真是够了,好烦

云端的持续集成

技术分享

如上图所示,引入持续集成后,一切都变得方便了,当开发人员向源代码控制服务器提交了新的代码后,就会触发持续集成服务器的Build操作,Build完成后,还会执行测试,测试通过以后,根据配置的不同,可以手动或自动部署到生产环境

这一切都是自动的,对于开发人员来说,只需要把代码提交到Source Control就可以了,非常方便

随着SaaS的兴起,AppVeyor把持续集成搬到了云端,我们无需架设自己的CI服务器,只需注册一个账号,然后把GitHub, BitBucket或者TFS 连上AppVeyor就可以了

AppVeyor与GitHub的集成

本文以GitHub为例,介绍AppVeyor与源代码控制服务器的集成

首先你要在GitHub有一个项目

技术分享

以一个ASP.NET项目为例子吧,一个MVC项目,带有一个单元测试,登录AppVeyor后,点击【New Project】

技术分享

选择项目,点击【ADD】,这样就可以把项目和AppVeyor关联了起来

直接点击右边的【New Build】就可以Build了

在Build之前,我们可以做一些配置

技术分享

在【SETTINGS】里面有一个版本号,这个版本号是唯一的,用来标识build的,但不会成为生成的程序集的版本号,如果你想让它成为程序集的版本号也是可以的,

技术分享

在页面下面,把这个打开就可以了

技术分享

在Build选项卡我们可以设置build的方式,是msbuild,还是脚本,还有配置(Debug, Release)和平台 (x64, x86, Any CPU)

技术分享

还可以让他在Build成功后生成Web Deploy Package 或是Nuget Package

技术分享

针对不同项目的build需求,可以选择不同的操作系统环境

技术分享

如果需要数据库或是其他软件,也可以添加

技术分享

还可以改hosts文件哦

当一切配置好后,我们按下Build

经过一两分钟的排队等待后,build正式开始

技术分享

可以实时查看Build的状态

技术分享

Build完成后,发现并运行单元测试,oops... Fail 了一个

技术分享

 

我们在Test选项卡可以很直观的看到结果,好了别看了,我们去修bug

技术分享

还有邮件通知。。。

技术分享

修好后Commit,AppVeyor就会检测到GitHub的代码更改,然后自动进行build和test

技术分享

技术分享

技术分享

这次的测试通过了,由于我勾选了生成Web Deploy Package,这里会有一个部署包,可以下载然后拿去部署

AppVeyor与生产环境的对接

如果要把部署包下载下来部署,那么还有什么方便可言呢?

我们可以直接通过AppVeyor把程序部署到生产环境,这里我们以Azure Website(中国版= =)为例

技术分享

到azure 的管理页面下载他的publish settings ,用文本编辑器打开,

技术分享

然后在AppVeyor 的 environments里面新建一个部署环境

按照publish setting的信息填写

技术分享

需要注意的是,在server里面的填写需要改成这样的格式

技术分享

本例中是 https://appveyordemo.scm.chinacloudsites.cn:443/msdeploy.axd?site=appveyordemo

创建好环境以后,只需点击Deploy 选择一个build,然后就可以了

技术分享

技术分享

部署成功后,我们就可以看到我们的网站了

更多AppVeyor的功能,等着各位朋友去探索!

云端持续集成——AppVeyor拥抱GitHub