前几天使用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. 《设计模式:可复用面向对象软件的基础》【PDF】下载

    <设计模式:可复用面向对象软件的基础>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382288 内容介绍 <设计模式:可复 ...

  2. EditText禁用系统键盘,光标可以继续使用

    在项目中有时候需要使用到自己的键盘,那这个时候就不希望系统键盘在弹出,而且光标还要继续显示,其实一个方法就可以简单实现 /** * 禁止Edittext弹出软件盘,光标依然正常显示. */ publi ...

  3. CentOS 7部署ASP.NET Core应用程序

    看了几篇大牛写的关于Linux部署ASP.NET Core程序的文章,今天来实战演练一下.2017年最后一个工作日,提前预祝大家伙元旦快乐.不扯淡,直接进入正题.您有任何问题请在评论区留言. 1.环境 ...

  4. 使用parcel替代webpack制作omi-tap插件

    Parcel 是一个零配置的网络应用打包工具, 适用于经验不同的开发者, 它利用多核处理提供了极快的速度.对比 webpack 最大的两个亮点: 零配置 极快速 omi 相关的插件都是基于 webpa ...

  5. Libevent源码分析 (1) hello-world

    Libevent源码分析 (1) hello-world ⑨月份接触了久闻大名的libevent,当时想读读源码,可是由于事情比较多一直没有时间,现在手头的东西基本告一段落了,我准备读读libeven ...

  6. C:函数:功能:实现字符数组中所有字母的倒序存放并输出

    前两天小测碰到一道题,建立一个函数,功能:实现字符数组中所有字母的倒序存放并输出,一开始觉得简单跟数字数组差不多,运行一下发现很多格式错误,这些是不必要的错误,现在就来说下,先说一下代码思路:定义一个 ...

  7. 关于mysql使用命令行时出现Data too long for column的解决方案:

    方法一: 1,在mysql根目录下找到my.ini文件: 2:将其中sql-mode中的STRICT_TRANS_TABLES这个属性去掉: 3:重启mysql的服务(注意注销电脑不会重启mysql服 ...

  8. Xamarin android spinner的使用方法

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  9. 刚实习的自己-php

    刚毕业的大学生,可能你的理论知识很丰富,但是你要清楚的是:你缺少实战经验.            正式实习的时候是在下午,老板给了我一个他们几年前开发好的系统(cms),这是一个展示型的网站,也就是发 ...

  10. linux 文件权限的基础知识

    由于自己总是记不住linux里权限的一些知识,因此简单总结如下: 查看文件权限 // 列出所有文件 ls -al // 最前面的一串10个字母的字符串 // 可能像 drwxrwxr-x // 第一位 ...