前几天使用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. Hibernate学习---基本介绍+作用+配置

    从今天开始重新学习(以前学的太匆忙)Hibernate,这篇文章主要就一下几点进行讲解和说明: Hibernate的基本介绍 Hibernate的作用 Hibernate基本配置 Hibernate的 ...

  2. IOS学习7——cocoapod安装与使用教程

    参考: iOS开发-CocoaPods使用详细说明  iOS开发-CocoaPods使用详细说明 一.CocoaPods简述 iOS开发时,项目中经常会需要引用第三方框架库,如果每用到一个第三方框架哦 ...

  3. Linux中dos2unix批量转换

    有时候遇到多层目录下的文件格式需要转换,dos2unix 没有-r之类的递归指令,所以需要与find还有管道结合. find -type f | xargs dos2unix -o

  4. [Find the last digit when factorial of A divides factorial of B]

    Given two numbers A and B. The task is to compute the last digit of the resulting F, where F= B! / A ...

  5. PHP判断手机号运营商(详细介绍附代码)

    道理很简单,知道手机号规则 进行正则判断就可以 移动:134.135.136.137.138.139.150.151.157(TD).158.159.187.188 联通:130.131.132.15 ...

  6. LAMP第三部分php,mysql配置

    php配置 1. 配置disable_functiondisable_functions = eval,assert,popen,passthru,escapeshellarg,escapeshell ...

  7. hashlib 简单加密

    import hashlib def md5(arg):#这是加密函数 md5_pwd = hashlib.md5(bytes('meac',encoding='utf-8')) md5_pwd.up ...

  8. 基于Java Mail 进行发送(带附件和压缩附件)的邮件

    刚进公司的training, 下面是要求: Self-study of Java Mail library:  http://www.oracle.com/technetwork/java/javam ...

  9. [编织消息框架][netty源码分析]13 ByteBuf 实现类CompositeByteBuf职责与实现

    public class CompositeByteBuf extends AbstractReferenceCountedByteBuf implements Iterable<ByteBuf ...

  10. 关于java 定时任务

    几种任务调度的 Java 实现方法与比较 综观目前的 Web 应用,多数应用都具备任务调度的功能.本文由浅入深介绍了几种任务调度的 Java 实现方法,包括 Timer,Scheduler, Quar ...