前几天使用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\文件夹查看下载的包,然后匹配配置项。
第一次写博客,哈哈,总是看别人的,自己写好慢啊。欢迎大家指正讨论。加油!!!