云端持续集成——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的更多相关文章
- python+selenium自动化软件测试(第11章):持续集成jenkins和GitHub的使用
11.1 jenkins持续集成环境 相关安装包下载链接:http://pan.baidu.com/s/1qYhmlg4 密码:dcw2赠送jenkins集成selenium环境视频链接http:// ...
- 持续集成~Jenkins构建GitHub项目的实现
有了前两讲的基础,这回我们就可以把github上的项目做到CI(jenkins)里了,让它自动去集成部署,持续集成~Jenkins里的NuGet和MSBuild插件,持续集成~Jenkins里的pow ...
- Jenkins持续集成学习-Windows环境进行.Net开发4
目录 Jenkins持续集成学习-Windows环境进行.Net开发4 目录 前言 目标 Github持续集成 提交代码到Github 从Github更新代码 git上显示构建状态 自动触发构建 Gi ...
- 拥抱自动化,CODING 2.0 持续集成全新上线
在文章开始前,做一个小调查,在您的软件项目中集成一行新代码平均需要花多长时间? 15 分钟 一小时 半天 一天及以上 注意这里的集成是指将源码放在一起,并验证源码可以作为一个一致.运行可靠的软件的过程 ...
- 在Redhat上为.Net 项目构建基于Jenkins + Github + Mono 的持续集成环境
在Redhat enterprise 6.5 的服务器上,为在gutub 上的 .net 项目构建一个持续集成环境,用到了Jenkins和mono.因公司的服务器在内网,访问外网时要通过代理,所以在很 ...
- flow.ci + Github + Slack 一步步搭建 Python 自动化持续集成
理想的程序员必须懒惰,永远追随自动化法则.Automating shapes smarter future. 在一个 Python 项目的开发过程中可能会做的事情:编译.手动或自动化测试.部署环境配置 ...
- github Travis CI 持续集成
一个项目如何保证代码质量是开发中非常重要的环节,对于开源项目来说更是如此,因为开源项目要面对的是来自不同水平开发者提交的代码.所以围绕开源做持续集成(Continuous Integration)变得 ...
- 构建基于Jenkins + Github的持续集成环境
搭建持续集成首先要了解什么是持续集成,带着明确的目标去搭建持续集成环境才能让我们少走很多弯路.持续集成(Continuous integration)简称CI,是一种软件开发的实践,可以让团队在持续集 ...
- Net 项目构建基于Jenkins + Github + Mono 的持续集成环境
Net 项目构建基于Jenkins + Github + Mono 的持续集成环境 阅读目录 1 安装 2 配置 3 测试 在Redhat enterprise 6.5 的服务器上,为在gutub 上 ...
随机推荐
- XGBoost参数调优完全指南(附Python代码)
XGBoost参数调优完全指南(附Python代码):http://www.2cto.com/kf/201607/528771.html https://www.zhihu.com/question/ ...
- ffmpeg未整理好,有时间整理下
v 容器(Container) v 容器就是一种文件(封装)格式,比如flv.mkv.ts.mp4.rmvb.avi等.包含下面5种流以及文件头信息. v 流(Stream) v 是一种视频数 ...
- Solr Zookeeper ACL权限配置
首先注意:在配置ACL的时候,请关闭solr运行实例!!否则可能对集群造成不可恢复的损坏 开始: 1.修改solr.xml,在solrCloud节点添加,告诉solr要使用的provider: < ...
- MongoDB文档、集合、数据库简介
文档 概述 文档是MongoDB的核心概念,是数据的基本单元,非常类似于关系数据库中的行.在MongoDB中,文档表示为键值对的一个有序集.MongoDB使用Javascript shell,文档的表 ...
- 技术英文单词贴--E
E element 元素,成分,要素 expire 到期,终止,期满
- unreal3对象属性自动从配置文件中加载的机制
unrealscript中有两个与属性自动配置相关的关键字: config/globalconfig 当把它们应用于属性时,对象在创建后,该属性的初始值会被自动设置为相对应ini文件中的值. 举例来说 ...
- 【Java】XML解析之DOM
DOM介绍 DOM(Document Object Model)解析是官方提供的XML解析方式之一,使用时无需引入第三方包,代码编写简单,方便修改树结构,但是由于DOM解析时是将整个XML文件加载到内 ...
- iOS删除本地文件
以前在博客里记录的东西都是截屏,没有插入代码,今天进去一看,图片都不显示了,只好重新插入代码,发现以前写的文件操作这块,没有写本地文件删除这个功能,重新再记录一下 //需要删除文件的物理地址 NSSt ...
- BFS 或 同余模定理(poj 1426)
题目:Find The Multiple 题意:求给出的数的倍数,该倍数是只由 1与 0构成的10进制数. 思路:nonzero multiple 非零倍数 啊. 英语弱到爆炸,理解不了题意... ...
- Linux查看当前目录下文件夹和文件的大小
File参数实际上是一个目录,就要报告该目录内的所有文件.如果没有提供 File参数,du命令使用当前目录内的文件. 如果File参数是一个目录,那么报告的块的数量就是分配到目录中文件以及分配到目录自 ...