云端持续集成——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的功能,等着各位朋友去探索!

时间: 2024-12-09 15:51:11

云端持续集成——AppVeyor拥抱GitHub的相关文章

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

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

Azure云中Web应用的持续集成实践

由于从事的工作领域关系,目前会或多或少的关注DevOps课题的相关领域,当然目前还在尝试多种适应于持续开发持续集成领域的工具和组合方式,个人粗浅的领会是DevOPS其实既不会只是开发者需要关注的,也是运维人员应该关注的领域,因为未来的IT世界其实是个"相对混合"的空间,发展之快超出想象:在开发测试领域的工具上看,Chef/Puppet/PowerShell DSC,到开源领域广泛应用Salt Stack, Ansible到 Docker生态圈等封装一系列基础架构即代码等概念的涌现,无时

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

在文章开始前,做一个小调查,在您的软件项目中集成一行新代码平均需要花多长时间? 15 分钟 一小时 半天 一天及以上 注意这里的集成是指将源码放在一起,并验证源码可以作为一个一致.运行可靠的软件的过程,而不只是完成编译. 如果在软件集成阶段耗费的时间经常让您的研发团队加班加点,那么是时候考虑落地持续集成了.我们都知道软件只有从代码生成制品,最终部署到生产环境中可靠运行才会给公司带来收入.持续集成是一种以"反馈"为核心的实践,为了达到短周期.高质量的交付目标,研发团队需要频繁且自动化地发

jenkins+github持续集成中的坑

1.前言 刚开始开发自己的独立博客的时候,每次发布都要手动打包,上传服务器,杀tomcat进程,重启,来回这么重复性工作,很快就有点不耐烦了.如果能自动化的东西,就绝不要手动了,所以自己搭建了个持续集成环境,配好了结合github进行push时自动构建,自动发布的流程,提交代码,泡杯咖啡就发布好了.本以为很简单,但没想到中间细节还是有不少坑,查了很多资料,墙都翻了好几次,把遇到的问题记录在这里. 2.正文 详细安装教程就不复制粘贴了,推荐此文手把手教你搭建Jenkins+Github持续集成环境

Jenkins+Github持续集成

由于最近团队代码库从coding迁移到github,在CI工具的选型上尝试了travis-ci和circle-ci,最后决定自己搭建CI服务器,而我也有幸认领了这个任务的调研,因此有了这篇文章. 之前写过一篇文章浅谈Jenkins+Node.js持续集成,那真的是浅谈,Jenkins包含的东西实在太多了,作为从hudson分支出来的开源免费的版本,插件与hudson通用,有更快的迭代速度和稳定性. 为什么选择Jenkins 答案简单:因为免费,学习资料多. 开始吧 安装配置这里就不赘述了,移步浅

GitHub+Jenkins持续集成简介

DevOps(英文Development(开发)和Operations(技术运营)的组合)是一组过程.方法与系统的统称,用于促进开发(应用程序/软件工程).技术运营和质量保障(QA)部门之间的沟通.协作与整合.它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作 持续集成概念: 持续集成Continuous Integration 持续交付Continuous Delivery 持续部署Continuous Deployment 1.1 什么是持续集成:

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

Net 项目构建基于Jenkins + Github + Mono 的持续集成环境 阅读目录 1 安装 2 配置 3 测试 在Redhat enterprise 6.5 的服务器上,为在gutub 上的 .net 项目构建一个持续集成环境,用到了Jenkins和mono.因公司的服务器在内网,访问外网时要通过代理,所以在很多步骤都加上了代理,如果你的服务器可以直接访问外网,则可以去掉代理. 回到顶部 1 安装 首先要在Redhat服务器上安装必要的工具. 1.1 安装Java 先检查版本,要求1

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

在Redhat enterprise 6.5 的服务器上,为在gutub 上的 .net 项目构建一个持续集成环境,用到了Jenkins和mono.因公司的服务器在内网,访问外网时要通过代理,所以在很多步骤都加上了代理,如果你的服务器可以直接访问外网,则可以去掉代理. 1 安装 首先要在Redhat服务器上安装必要的工具. 1.1 安装Java 先检查版本,要求1.7及以上 java –version java version "1.5.0" gij (GNU libgcj) vers

Redhat上为java Maven项目构建基于Jenkins + Github的持续集成环境

在Redhat enterprise 6.5 的服务器上,为在gutub 上的 java mvaen项目构建一个持续集成环境,用到了Jenkins.因公司的服务器在内网,访问外网时要通过代理,所以为maven加上了代理,如果你的服务器可以直接访问外网,则可以去掉代理..net 项目可参考 <在Redhat上为.Net 项目构建基于Jenkins + Github + Mono 的持续集成环境> 1. 安装 maven wget -e "http_proxy=http://web-pr