前几天使用VSTS配置自动部署前端网站(AngularJS)和RESTfulAPI(.NET)到客户环境. 由于都是参考官方文档 https://docs.microsoft.com/zh-cn/vsts/build-release/tasks/ 比较费时间,所以记录下来步骤,希望能对大家有帮助。

Build RESTful API

1. 选择Build and Release -> Builds -> New -> 选择模板ASP.NET,这个模板主要思路是:选择一个代理(相当于云服务器) -> 获取代码 ->  安装NuGet -> 使用NuGet获取引用 -> 编译项目 -> 执行单元测试 -> 上传.

2. 关键的配置项. Process中Agent queue, 因为是部署到Windows Server2012, 直接选择Hosted VS2017.如何没有已经存在的代理,需要在设置-> Agent Queues 中下载配置。

3. Get sources中Server path, 这个代码路径很重要,因为默认设置是寻找.sln文件,所以需要配置合适的路径。

4. Build Solution中Visual Studio Version, 按照你的程序版本选择对应的VS.

5. Copy Post Scripts是自己加的,因为部署完成后需要在服务器用newman执行该脚本,所以此处下载该脚本拷贝到程序包里一块上传。

6. 第二列Variables中选择BuildConfiguration是release/debug版本。

7. 第三列Triggers中Continuous integration,都打勾并且配置代码路径,当上传该路径下的代码时会自动开始执行Build。

8. 其他列中使用默认值就可以,点击Save & queue 看一下Build结果。

9. 执行成功。点击Build 20180121.1 -> Artifacts 可以查看上传的包。

10. 如果出现错误,可以查看Phase 1 -> Logs,有详细信息。

Release RESTful API

1. 点击上图中右上方的Release,选择模板IIS Website Deployment,该模板主要流程:下载包到服务器 -> 拷贝包到网站物理路径 -> 自动刷新。红框中的每一个都是配置项,可以使用默认值。Select template框会显示为 1 Phase, 4 tasks,点击它开始配置环境。

2. 关键的配置项。Environment1中Configuration type,如果你的是应用程序,比如www.api.com/myapi/login中的myapi项目,需要选择IIS Web Application或者IIS Virtual Directory。 然后配置网站名称和地址。

3. IIS Deployment中Deployment group, 这个配置项是连接服务器的桥梁。选择Deployment Groups* -> New -> input name -> Copy script to clipboard. 我建的名称是myGroup。

4. 到服务器上Run as Administrator执行该脚本。提示需要Enter personal access token >. 然后回到VSTS中创建token。点击 账号名称 -> Security -> Personal access tokens -> Add -> Create token. 保存该token, 以后是查不到的。

5. 接着到服务器上,输入token. 如图用户名是访问该机器的带域名的用户名和密码。创建成功后会启动vstsagent.xxx.myGroup服务。

6. 打开myGroup -> Targets -> myGroup -> Capabilities. 看一下安装好的属性。也可以在服务器上C\vstsagent\A4 打开路径看看里面的东西,挺有意思。

7. 接着第3步,IIS Deployment中Deployment group,选择myGroup.

8. IIS Web App Manage中Physical path,选择对应的物理路径。

9. 网站部署完成后,将包中的两个json文件拷贝到服务器上的文件夹。

10. 执行newman命令,将执行结果导出到report.html中。

11. Save -> Release -> Create Release -> Deploy。如果有错误可以看Logs详细信息,如果路径有问题,可以在服务器上C:\vstsagent\A4\_work_r1\a\文件夹查看下载的包,然后匹配配置项。

第一次写博客,哈哈,总是看别人的,自己写好慢啊。欢迎大家指正讨论。加油!!!

VSTS/TFS Auto Build的更多相关文章

  1. docker4dotnet #5 使用VSTS/TFS搭建基于容器的持续交付管道

    在过去的几篇d4d系列中,我给大家介绍了如何使用docker来支持asp.net core的应用开发,打包的场景.Asp.net core的跨平台开发能力为.net开发人员提供了使用容器进行应用开发的 ...

  2. 使用VSTS/TFS搭建iOS持续集成环境

    TFS 自2015版开始支持跨平台的持续集成环境,通过提供开源的build agent为 Windows / linux / macOS 提供了统一的持续集成环境管理能力.这篇文章给大家介绍一下如何使 ...

  3. How to Build Office Developer Tools Projects with TFS Team Build 2012

    Introduction Microsoft Visual Studio 2012 provides a new set of tools for developing apps for Office ...

  4. 关于idea的一次踩坑记录-Auto build completed with errors

    maven项目添加pom依赖后,一直不能正常导入所依赖的jar包,并且报错“ Auto build completed with errors”

  5. 搭建TFS 2015 Build Agent环境(一)

    Download the build agent Downloading the build agent is really simple. Navigate to your TFS control ...

  6. 搭建TFS 2015 Build Agent环境(四)

    在通过TFS做DI时,我们经常用到FTP文件上传.TFS发布中,提供了cURL上载文件功能.要想使用此功能,请参考下面步骤启用: 1.登录BuildAgent所在的机器 2.打开cmd(以管理员权限运 ...

  7. TFS online build change web.config

    概要 TFS online 自动编译时如何修改web.config ref:https://dustinoprea.com/2016/05/06/using-tokenization-token-re ...

  8. TFS 2015 Build Agent failing syncing the repository 获取源码 不全 失败

    当我们使用TFS2015d的生成代理时,我们将生成定义加入代理池队列中,但是代理可能无法完全下载我们在TFS代码浏览器中看到的所有目录,这肯定会导致编译失败呀!为什么呢? 原因在于tfscompile ...

  9. 搭建TFS 2015 Build Agent环境(三)

    在配置时,一定要注意下面的几个地方: 1.项目集合生成服务账号 中一定要包含: 2.Build Agent机器上防止Agent的路径一定要短,不要出现特殊字符,比如:C:\Agent 3.一定要安装V ...

随机推荐

  1. Ubuntu上安装flashplayer

    当你已经为linux flashplayer无法安装抓狂的时候,不妨来看看吧 我使用的是Ubuntu 12.04.4 LTS,由于firefox无法播放flash所以去下载了一个adobeflashp ...

  2. bzoj 3242: [Noi2013]快餐店

    Description 小T打算在城市C开设一家外送快餐店.送餐到某一个地点的时间与外卖店到该地点之间最短路径长度是成正比的,小T希望快餐店的地址选在离最远的顾客距离最近的地方. 快餐店的顾客分布在城 ...

  3. JS画几何图形之三【正弦曲线】

    数学式:y=Asin(ωx+φ)+k 样例:http://www.zhaojz.com.cn/demo/draw7.html 依赖:[点].[直线] JS函数的声明: //画正弦曲线 //dot 原点 ...

  4. BOOTPROTO=[none|static|bootp|dhcp](引导时不使用协议|静态分配|BOOTP协议|DHCP协议)

     BOOTPROTO=[none|static|bootp|dhcp](引导时不使用协议|静态分配|BOOTP协议|DHCP协议) 

  5. Cleaner, more elegant, and harder to recognize(翻译)

    Cleaner, more elegant, and harder to recognize 更整洁,更优雅,但更难识别 看来,有些人把我几个月前一篇文章的标题"Cleaner,more e ...

  6. Linux发行版 CentOS6.5下的分区操作

    本文地址http://comexchan.cnblogs.com/ ,尊重知识产权,转载请注明出处,谢谢! 查询磁盘信息并作分区规划 执行下述命令查询磁盘信息: fdisk -l 可知.数据盘大小50 ...

  7. vue链接传参与路由传参

    1.链接传参: 例如:链接是:http://localhost:3333/#/index?id=001 我们要获取参数:console.log(this.$route.query.id):即可 2.路 ...

  8. JavaScript的DOM编程--02--获取元素节点

    如何来获取元素节点: 1) .document.getElementById: 根据 id 属性获取对应的单个节点 2) .document.getElementsByTagName: 根据标签名获取 ...

  9. C#学习之设计模式:工厂模式

    最近研究一下设计模式中工厂模式的应用,在此记录如下: 什么是工厂模式? 工厂模式属于设计模式中的创造型设计模式的一种.它的主要作用是协助我们创建对象,为创建对象提供最佳的方式.减少代码中的耦合程度,方 ...

  10. ASP.NET MVC 5使用Swagger生成API文档

    一.安装 新建一个没有身份验证的mvc项目 - SwaggerMvc5Demo,然后添加一个名为Remote(自定义)且包含基础读写(不想手写)的ApiController   开源地址:https: ...