想着你正在做一个网站

终于大功告成了,提交了代码后,你按下了开发环境的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的更多相关文章

  1. python+selenium自动化软件测试(第11章):持续集成jenkins和GitHub的使用

    11.1 jenkins持续集成环境 相关安装包下载链接:http://pan.baidu.com/s/1qYhmlg4 密码:dcw2赠送jenkins集成selenium环境视频链接http:// ...

  2. 持续集成~Jenkins构建GitHub项目的实现

    有了前两讲的基础,这回我们就可以把github上的项目做到CI(jenkins)里了,让它自动去集成部署,持续集成~Jenkins里的NuGet和MSBuild插件,持续集成~Jenkins里的pow ...

  3. Jenkins持续集成学习-Windows环境进行.Net开发4

    目录 Jenkins持续集成学习-Windows环境进行.Net开发4 目录 前言 目标 Github持续集成 提交代码到Github 从Github更新代码 git上显示构建状态 自动触发构建 Gi ...

  4. 拥抱自动化,CODING 2.0 持续集成全新上线

    在文章开始前,做一个小调查,在您的软件项目中集成一行新代码平均需要花多长时间? 15 分钟 一小时 半天 一天及以上 注意这里的集成是指将源码放在一起,并验证源码可以作为一个一致.运行可靠的软件的过程 ...

  5. 在Redhat上为.Net 项目构建基于Jenkins + Github + Mono 的持续集成环境

    在Redhat enterprise 6.5 的服务器上,为在gutub 上的 .net 项目构建一个持续集成环境,用到了Jenkins和mono.因公司的服务器在内网,访问外网时要通过代理,所以在很 ...

  6. flow.ci + Github + Slack 一步步搭建 Python 自动化持续集成

    理想的程序员必须懒惰,永远追随自动化法则.Automating shapes smarter future. 在一个 Python 项目的开发过程中可能会做的事情:编译.手动或自动化测试.部署环境配置 ...

  7. github Travis CI 持续集成

    一个项目如何保证代码质量是开发中非常重要的环节,对于开源项目来说更是如此,因为开源项目要面对的是来自不同水平开发者提交的代码.所以围绕开源做持续集成(Continuous Integration)变得 ...

  8. 构建基于Jenkins + Github的持续集成环境

    搭建持续集成首先要了解什么是持续集成,带着明确的目标去搭建持续集成环境才能让我们少走很多弯路.持续集成(Continuous integration)简称CI,是一种软件开发的实践,可以让团队在持续集 ...

  9. Net 项目构建基于Jenkins + Github + Mono 的持续集成环境

    Net 项目构建基于Jenkins + Github + Mono 的持续集成环境 阅读目录 1 安装 2 配置 3 测试 在Redhat enterprise 6.5 的服务器上,为在gutub 上 ...

随机推荐

  1. afx , afxMessageBox , MessageBox

    afx开头的是全局函数,可以在任何地方使用 MessageBox是CWnd的子函数,只能在CWnd窗口类对象里面用, AfxMessageBox的函数原型 int AfxMessageBox( LPC ...

  2. (转)iOS sqlite :truncate/delete/drop区分

    转自:http://blog.sina.com.cn/s/blog_6755689f0101fofb.html 相同点: 1.truncate和不带where子句的delete.以及drop都会删除表 ...

  3. SCI写作经验交流,别人的经验借鉴下,很有用的!

    http://www.dxy.cn/bbs/topic/27127771 语言是非英语国家论文的最大障碍.首先是时态和语态:在前言和讨论里,描述该研究的过去历史和现状时,要使用相应的时态:过去就使用过 ...

  4. ActiveMQ安装与使用

    一 .安装运行ActiveMQ: 1.下载activemq wget http://archive.apache.org/dist/activemq/apache-activemq/5.9.0/apa ...

  5. android笔记:DatePickerDialog日期设置对话框

    在开发中,可以通过DatePickerDialog来设置日期,TimePickerDialog来设置时间. 实例化DatePickerDialog对象之后,再调用show方法就可以显示对话框了. 具体 ...

  6. python学习之——小闹钟(持续完善ing)

    "啊,坏了,我忘了那啥啥了~~~" 为了不坏了,动手做一个小闹钟吧,一点点完善的过程一定美好极了,必像等待培育许久的花儿绽放一样,不多说,加油,期待↖(^ω^)↗ #! /usr/ ...

  7. linux中压缩与解压缩命令

    .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ——————————————— .gz 解压 ...

  8. Ubuntu遇到Please ensure that adb is correctly located at '...adb.exe' and can be executed 问题解决方法

    上次我们在SDK更新的到最新的Android L版本之后,我发现我的ADT和android指定的版本不对应,我的ADT是22版本的,android L需要23版本以上的,版本不对应的话就无法加载这个S ...

  9. pdflatex, xelatex, texstudio中文编码问题

    使用xelatex,源文件需要用utf-8编译,pdf文件不会乱码. 使用pdflatex,源文件不能使用utf-8编码,否则pdf文件会乱码. 使用GB2312没问题.

  10. WebService 调用

    一.WebService调用 1.webservice支持四种调用方式:SOAP 1.1,SOAP 1.2,GET,POST.           2.如果要webservice支持GET,POST调 ...