使用Visual Studio Team Services持续集成(一)——构建ASP.NET Core

时间:2022-01-31 15:26:32

使用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创建构建定义

使用Visual Studio Team Services持续集成(一)——构建ASP.NET Core

4.可以从选择一个模板开始,该模板将添加一组任务,为正在构建的应用程序应用典型的设置,或者从一个空白的过程开始,从头开始构建。有一个用于构建ASP.NET应用的模板。接下来将使用它。选择ASP.NET Core (PREVIEW)并单击apply应用构建定义的模板。

使用Visual Studio Team Services持续集成(一)——构建ASP.NET Core

5.如您所见,该模板已经应用了一组典型的关注构建ASP.NET core应用程序的任务。在很多情况下,可能不需要做任何其他事情,仅仅是指向正确的repo和branch就可以了。在这种情况下,需要对构建进行一些定制。选择Get sources任务。可以从各种源(包括GitHub、SVN或任何其他Git仓库库)获取代码,但是由于在VSTS项目本身中有对应的代码,所以选择这个项目。如果没有指向正确的仓库和分支,请更改它

使用Visual Studio Team Services持续集成(一)——构建ASP.NET Core

6.下一个任务Restore不需要更改

7.保存构建定义——将它命名为MHC.Web.CI

My Health Clinic web应用程序依赖于节点组件和其他的库。需要添加任务来下载和安装这些包,然后才能构建。在接下来的任务中,我们将看到如何将任务添加到构建定义中。

任务2:添加构建任务

从团队项目中删除未使用的repo,以组织项目的源代码。

1.选择Add Task之后选择Package查找与该类别相关的任务,选择npm并点击Add。将其放置到Build任务后

使用Visual Studio Team Services持续集成(一)——构建ASP.NET Core

2.将工作文件夹更改为src/MyHealth.Web。该项目有一个json文件,npm安装命令通过他知道需要安装哪些包

使用Visual Studio Team Services持续集成(一)——构建ASP.NET Core
接下来,您需要运行bower来安装web包。可以使用Command Line/Shell Script工具运行Bower命令,但是更好的方法是使用Bower任务。这个任务不是现成的,需要从市场上安装。

从另一个选项卡,导航到市场上的Bower extension page并安装它。当完成返回到正在编辑构建定义的选项卡时,关闭该选项卡。

1.保存构建定义并刷新页面。应该在Package选项卡下看到Bower任务。选择该任务并单击Add

使用Visual Studio Team Services持续集成(一)——构建ASP.NET Core

2.选择Bower任务并更改Bower JSONPath指向MyHealth.Web 文件夹下的bower.json文件。

使用Visual Studio Team Services持续集成(一)——构建ASP.NET Core

3.接下来需要gu重点内容lp任务。选择Add Task,并查找Gulp from the Build**部分,将其添加到构建定义中。
使用Visual Studio Team Services持续集成(一)——构建ASP.NET Core

4.更改Gulp file path指向MyHealth.Web文件夹下的的gulp文件。

使用Visual Studio Team Services持续集成(一)——构建ASP.NET Core

5.其余的任务不需要任何更改。已经准备好运行该构建。可以使构建作为一个持续集成(Continuous Integration)构建运行,以便在分支上的每个签入都会触发其运行。稍后我们将在实验室中看到。现在,我们将手动运行它。

6.选择Save & queue来保存构建定义并立即对构建进行排队。如果已经保存了构建定义,从菜单中选择Queue

使用Visual Studio Team Services持续集成(一)——构建ASP.NET Core

7.需要选择要运行此构建的构建代理。可以选择在一个前提代理上运行构建,或者使用托管在Azure上的代理。我们将使用Hosted VS2017代理,因为它拥有.NET core框架和构建应用程序所需的所有其他组件。

使用Visual Studio Team Services持续集成(一)——构建ASP.NET Core

8.将看到构建等待寻找代理运行。它可能需要几分钟,并且一旦得到一个代理,构建就会开始执行。当构建运行时,可以实时看到输出日志。如果需要进行更深入的分析,还可以后续下载日志。

使用Visual Studio Team Services持续集成(一)——构建ASP.NET Core

9.完成所有步骤之后,可以在顶部选择构建编号(Build number)以获得运行的详细信息。Summary选项卡显示了运行的摘要,包括谁触发了它,在什么时间,获取了哪些代码和提交,相关的工作项,测试等等。

使用Visual Studio Team Services持续集成(一)——构建ASP.NET Core

10.Timeline视图将帮助您找出运行的每个任务的时间。如果构建定义包含发布任务,如果有任何文件被发布,可以从Artifacts选项卡中找到它。

使用Visual Studio Team Services持续集成(一)——构建ASP.NET Core
我们将了解构建中如何处理变量、设置不同的触发器机制等等。

动手实验

类别 文章名称
概述 Visual Studio Team Services 动手实验
计划 使用Visual Studio Team Services敏捷规划和项目组合管理(一)使用团队、区域和迭代
使用Visual Studio Team Services敏捷规划和项目组合管理(二)VSTS中的工作项
使用Visual Studio Team Services敏捷规划和项目组合管理(三)使用Kanban板
使用Visual Studio Team Services敏捷规划和项目组合管理(四)冲刺计划和任务板
使用Visual Studio Team Services敏捷规划和项目组合管理(五)组合管理
使用Visual Studio Team Services敏捷规划和项目组合管理(六)——VSTS仪表盘的使用
使用Visual Studio Team Services敏捷规划和项目组合管理(七)——流程定制
Microsoft Teams 集成 (协作, 沟通 和 行为)
使用VSTS的Git进行版本控制(一)——复制现有仓库)
使用VSTS的Git进行版本控制(二)——提交保存工作)
使用VSTS的Git进行版本控制(三)——评审历史记录)
使用VSTS的Git进行版本控制(四)——在Visual Studio中管理分支)
使用VSTS的Git进行版本控制(五)——从Team Services Portal管理分支)
使用VSTS的Git进行版本控制(六)——拉取请求)
使用VSTS的Git进行版本控制(七)——管理仓库)
相关资料 Visual Studio Team Services Demo Generator简介
参考文章 Continuous Integration using Visual Studio Team Services