使用Visual Studio Team Services持续集成(一)——构建ASP.NET Core
使用Visual Studio Team Services持续集成(一)——构建ASP.NET Core
概述
持续集成(CI)是将代码尽可能频繁地集成到共享仓库中的过程。在代码集成期间,构建中断或测试失败可以及时地通知代码中的错误。
当许多开发人员在复杂的软件项目上进行协作时,将代码的不同部分集成在一起可能是一个漫长而不可预测的过程。但是,如果持续地构建和部署项目,可以使这个过程更加高效和可靠。
Visual Studio Team Services简化了应用程序的持续集成过程,无论目标平台是什么,或者使用的是什么语言,VSTS Team Build允许:
- 在Linux,Mac和Windows上构建
- 使用私有的或托管的(Azue)构建代理
- 为Android、iOS、Java、.NET等应用使用多平台构建代理
- 与工作、测试、编码、构建和发布的无缝集成
- 通过实时构建状态跟踪构建
前置条件
要完成这个实验室需要:
- Visual Studio Team Services 账户.如果没有,需要创建一个。
- Visual Studio 2017 或更高版本
- 可以使用Visual Studio team Services Demo Data generator Visual Studio team Services帐户提供预先定义的项目数据。在本动手实验请使用My Health Clinic模板。
如果没有使用VSTS Demo Data Generator,可以从GitHub仓库中复制代码。
练习1:构建ASP.NET Core
ASP.NET Core是一个用于构建web和云应用程序的精简和可组合框架。这里将展示如何自动构建HealthClinic ASP.NET Core应用程序。
如果使用演示生成器提供的项目,那么构建定义应该自动创建。可以在不添加或修改任务的情况下了解在VSTS中构建管道是如何工作的。否则,可以按照以下步骤创建一个新的构建定义。
任务1:创建新的构建定义
1.从VSTS帐户概述页面,选择团队项目。
2.点击Build and Release选项卡并选择Builds
3.点击New创建构建定义
4.可以从选择一个模板开始,该模板将添加一组任务,为正在构建的应用程序应用典型的设置,或者从一个空白的过程开始,从头开始构建。有一个用于构建ASP.NET应用的模板。接下来将使用它。选择ASP.NET Core (PREVIEW)并单击apply应用构建定义的模板。
5.如您所见,该模板已经应用了一组典型的关注构建ASP.NET core应用程序的任务。在很多情况下,可能不需要做任何其他事情,仅仅是指向正确的repo和branch就可以了。在这种情况下,需要对构建进行一些定制。选择Get sources任务。可以从各种源(包括GitHub、SVN或任何其他Git仓库库)获取代码,但是由于在VSTS项目本身中有对应的代码,所以选择这个项目。如果没有指向正确的仓库和分支,请更改它
6.下一个任务Restore不需要更改
7.保存构建定义——将它命名为MHC.Web.CI
My Health Clinic web应用程序依赖于节点组件和其他的库。需要添加任务来下载和安装这些包,然后才能构建。在接下来的任务中,我们将看到如何将任务添加到构建定义中。
任务2:添加构建任务
从团队项目中删除未使用的repo,以组织项目的源代码。
1.选择Add Task之后选择Package查找与该类别相关的任务,选择npm并点击Add。将其放置到Build任务后
2.将工作文件夹更改为src/MyHealth.Web。该项目有一个json文件,npm安装命令通过他知道需要安装哪些包
接下来,您需要运行bower来安装web包。可以使用Command Line/Shell Script工具运行Bower命令,但是更好的方法是使用Bower任务。这个任务不是现成的,需要从市场上安装。
从另一个选项卡,导航到市场上的Bower extension page并安装它。当完成返回到正在编辑构建定义的选项卡时,关闭该选项卡。
1.保存构建定义并刷新页面。应该在Package选项卡下看到Bower任务。选择该任务并单击Add。
2.选择Bower任务并更改Bower JSONPath指向MyHealth.Web 文件夹下的bower.json文件。
3.接下来需要gu重点内容lp任务。选择Add Task,并查找Gulp from the Build**部分,将其添加到构建定义中。

4.更改Gulp file path指向MyHealth.Web文件夹下的的gulp文件。
5.其余的任务不需要任何更改。已经准备好运行该构建。可以使构建作为一个持续集成(Continuous Integration)构建运行,以便在分支上的每个签入都会触发其运行。稍后我们将在实验室中看到。现在,我们将手动运行它。
6.选择Save & queue来保存构建定义并立即对构建进行排队。如果已经保存了构建定义,从菜单中选择Queue。
7.需要选择要运行此构建的构建代理。可以选择在一个前提代理上运行构建,或者使用托管在Azure上的代理。我们将使用Hosted VS2017代理,因为它拥有.NET core框架和构建应用程序所需的所有其他组件。
8.将看到构建等待寻找代理运行。它可能需要几分钟,并且一旦得到一个代理,构建就会开始执行。当构建运行时,可以实时看到输出日志。如果需要进行更深入的分析,还可以后续下载日志。
9.完成所有步骤之后,可以在顶部选择构建编号(Build number)以获得运行的详细信息。Summary选项卡显示了运行的摘要,包括谁触发了它,在什么时间,获取了哪些代码和提交,相关的工作项,测试等等。
10.Timeline视图将帮助您找出运行的每个任务的时间。如果构建定义包含发布任务,如果有任何文件被发布,可以从Artifacts选项卡中找到它。
我们将了解构建中如何处理变量、设置不同的触发器机制等等。
动手实验
使用Visual Studio Team Services持续集成(一)——构建ASP.NET Core的更多相关文章
- 使用Visual Studio Team Services持续集成(四)——使用构建运行测试
使用Visual Studio Team Services持续集成(四)--使用构建运行测试 使用构建来运行测试来验证集成是一个很好的实践. MyHealth.API.IntegrationTests ...
- 使用Visual Studio Team Services持续集成(三)——使用工件
使用Visual Studio Team Services持续集成(三)--使用工件 工件是应用程序的可部署组件.Visual Studio Team Services有能力在构建过程中显式地管理工件 ...
- 使用Visual Studio Team Services持续集成(二)——为构建定义属性
使用Visual Studio Team Services持续集成(二)--为构建定义属性 1.从VSTS帐户进入到Build 2.编辑构建定义并单击Options Description:如果这里明 ...
- Visual Studio Team Services持续集成到Github仓库
Devops如何用VSTS持续集成到Github仓库! 工欲善其事,必先利其器.在开始正式的教程之前我们先来聊聊准备工作. 管理工具会VSTS. 代码管理会用GITHUB. 服务器会用Azure. ...
- 使用Visual Studio Team Services进行压力和性能测试(一)——创建基础的URL压力测试
使用Visual Studio Team Services进行压力和性能测试(一)--创建基础的URL压力测试 概述 压力测试使应用程序更加健壮,并审核在用户负载下的行为,这样我们可以在当前的基础设施 ...
- 使用Visual Studio Team Services进行压力和性能测试(二)——压力测试执行
使用Visual Studio Team Services进行压力和性能测试(二)--压力测试执行 1.点击Run test将会该压力测试进行排队,我们将看到等待测试代理屏幕.Visual Studi ...
- 使用 Visual Studio Team Services 和 IIS 创建持续集成管道
若要将应用程序开发的生成.测试和部署阶段自动化,可以使用持续集成和部署 (CI/CD) 管道. 本教程介绍如何在 Azure 中使用 Visual Studio Team Services 和 Win ...
- 使用Visual Studio Team Services敏捷规划和项目组合管理(四)——冲刺计划和任务板
使用Visual Studio Team Services敏捷规划和项目组合管理(四)--冲刺计划和任务板 团队在sprint计划会议期间创建冲刺积压工作项,通常在冲刺的第一天召开该会议.每个冲刺都对 ...
- 使用Visual Studio Team Services敏捷规划和项目组合管理(三)——使用Kanban板
使用Visual Studio Team Services敏捷规划和项目组合管理(三)--使用Kanban板 1.要查看Kanban板,请单击Work>Backlogs页面上的Board 链接. ...
随机推荐
- Eclipse报错:!!MESSAGE Job found still running.......
!ENTRY org.eclipse.core.jobs 2 2 2014-01-08 09:28:06.387 !MESSAGE Job found still running after plat ...
- JavaScript高级编程(1)——JavaScript初识
一.javascript的简介 1.1 javascript的历史回顾. Javascript诞生于1995年.当时,它主要的目的是用来处理一些由服务器端处理的输入验证操作.在javascript没有 ...
- 微信公众号开发模型WeChat
模型:WeChat (回复参考weiphp) <?php namespace Org; /** * 微信开发工具类 * Class WeChat * Author chenqionghe * @ ...
- Jenkins持续集成介绍及插件安装版本更新演示(一)--技术流ken
Jenkins介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. Jenkins功能包括: ...
- 为Spring Cloud Config插上管理的翅膀
最近一致在更新Spring Cloud Config的相关内容,主要也是为这篇埋个伏笔,相信不少调研过Spring Cloud Config的用户都会吐槽它的管理能力太弱.因此,就有了下面为讲推荐的这 ...
- 玩转Linux服务器常用命令
查看服务器的一些基本信息: linux基础命令:http://cnblogs.com/mmzs/p/8406208.html Linux某些命令找不到/无法使用:http://www.cnblogs. ...
- 解决QTableWidget不显示数据的问题
QTableWidget通常用于数据的展示,通过其表格布局可以让用户更清晰的查看数据,同时也让数据的筛选变得更加直观. 不过,初学者们和粗心大意的人总是会发现明明自己数据已经正常添加,可是程序运行之后 ...
- .NET记录-获取外网IP以及判断该IP是属于网通还是电信
在工作时,需要获取服务器公网IP(外网IP),并且判断该IP地址是属于网通还是电信.花时间整理一下,自己实现的代码,以及后续遇到的问题. /// <summary> /// 获取外网IP ...
- 【转载】Asp.Net中使用基于jQuery的javascript前台模版引擎JTemplate
JTemplate是基于jQuery的开源的前端模版引擎,在Jtemplate模板中可以使用if判断.foreach循环.for循环等操作,使用Jtemplate模板优点在于ajax局部刷新界面时候不 ...
- mybatis_12延时加载_懒加载
延时加载:也叫懒加载 2.1 延迟加载 延迟加载又叫懒加载,也叫按需加载.也就是说先加载主信息,在需要的时候,再去加载从信息. 在mybatis中,resultMap标签 的association标签 ...