使用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 链接. ...
随机推荐
- java模式—装饰者模式
装饰者模式 1.意图: 动态地给一个对象添加一些额外的职责.就增加功能来说, Decorator模式相比生成子类更为灵活.该模式以对客 户端透明的方式扩展对象的功能. 2.适用环境 (1)在不影响其他 ...
- mysql 开发进阶篇系列 1 SQL优化(show status命令)
一.概述 随着上线后,数据越来越多,很多sql语句开始显露出性能问题,本章介绍在mysql中优化sql语句的方法. 1. 通过show status 命令了解各种sql的执行频率 通过show [ ...
- 小程序开发--移动端分辨率与rpx
首先说一个很有意思的问题:一块720p的屏幕和1080p的屏幕那个大? 这个问题很有代表性,如果手机竖着放,720p=720px*1280px,而1080p=1080px*1920px;那么在宽度上, ...
- 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 ...
- UVa OJ 120
Background背景 Stacks and Queues are often considered the bread and butter of data structures and find ...
- 如何用vue-router为每个路由配置各自的title
传统方法 以前在单页面路由中,就只能在html文件中定一个固定的网站的title.如果想要动态的去修改,需要使用如下的方法. document.title = '这是一个标题'; 这样会让我们做很多无 ...
- 走进javascript——重拾数组
Array构造器 如果参数只有一个并且是Number类型,那么就是指定数组的长度,但不能是NaN,如果是多个会被当做参数列表. new Array(12) // (12) [undefined × 1 ...
- jquery的jsonp的使用
客户端 $(function(){ $.ajax({ type: "get", async: false, url: "http://test.com/json_data ...
- ZOOKEEPER典型应用场景解析
zookeeper实现了主动通知节点变化,原子创建节点,临时节点,按序创建节点等功能.通过以上功能的组合,zookeeper能够在分布式系统中组合出很多上层功能.下面就看几个常用到的场景,及使用方式和 ...
- Linux文件权限与属性详解 之 ACL
Linux文件权限与属性详解 之 一般权限 Linux文件权限与属性详解 之 ACL Linux文件权限与属性详解 之 SUID.SGID & SBIT Linux文件权限与属性详解 之 ch ...