使用Visual Studio构建完整的CI/CD流水线

本文将演示如何在Visual Studio中构建完整的CI/CD流水线,并使用Visual Studio的新Continuous Delivery扩展部署到Azure。

通过使用持续集成(CI)和持续交付(CD)的自动化实践,您可以实现应用程序的快速、可靠和重复性的开发和部署,同时最大程度地减少人为干预。Visual Studio作为一个功能强大的集成开发环境(IDE),提供了丰富的协作工具和扩展,使得构建、测试和部署CI/CD流水线变得更加简单。这篇文章将向读者介绍在Visual Studio中创建CI/CD流水线的步骤以及如何使用Visual Studio的Continuous Delivery扩展改进软件质量和安全性。最后,通过CI/CD的自动化系统,您可以确保软件质量、提高生产效率,并为客户提供满意的产品体验。

使用CI允许您合并代码更改,以确保这些更改与现有代码库一起正常工作,并进行测试。另一方面,使用CD,您会反复将代码推送到部署流水线中,在此流水线中构建、测试和部署代码。CI/CD团队实践自动化了应用程序的构建、测试和部署,并提供完全可追溯性,以查看代码更改、审查和测试结果。

什么是Visual Studio?

Visual Studio是一个功能强大的集成开发环境(IDE)。这个功能丰富的IDE具有用于编码、调试和构建应用程序的强大环境。Azure DevOps(先前称为VS Team Services)拥有一套全面的协作工具和扩展,紧密集成了Visual Studio环境的CI/CD流水线。CI(持续集成)更新任何代码更改到现有代码库,而CD(持续部署)则将其通过部署流水线进一步构建、测试和部署。带有CI/CD扩展的Visual Studio因此自动化了软件开发的构建、部署和测试过程。不仅如此,它还允许完全的可追溯性,以查看代码更改、审查和测试结果。

软件质量在很大程度上取决于开发过程。CI/CD实践的自动化系统专注于通过持续交付和部署来实现这一目标。因此,这不仅确保了软件质量,还提高了生产的安全性和盈利能力。这也缩短了生产时间以包含新功能,为开发工作减少了压力,创造了满意的客户。

要创建一个CI构建、发布流水线和将代码部署到Azure中,您只需要一个现有的基于Web的应用程序和一个来自市场的扩展。DZone之前已经介绍了如何从头开始构建CI/CD流水线的方法。

如何使用Visual Studio构建CI/CD流水线

步骤1:启用Visual Studio的Continuous Delivery扩展

为了使用Visual Studio的Continuous Delivery Tools扩展,您只需要启用它。Continuous Delivery Tools for Visual Studio扩展使得自动化和及时了解针对Azure的其他项目的DevOps流水线变得简单。这些工具还允许您改进代码质量和安全性。

  1. 转到“工具”菜单,并选择“扩展和更新”。

  2. 在弹出的窗口中,选择“Continuous Delivery Tools for Visual Studio”,然后点击“启用”。

*如果您尚未安装Continuous Delivery Tools,请前往在线的Visual Studio Marketplace,搜索“Continuous”,然后下载安装。

启用Visual Studio的Continuous Delivery扩展

启用Visual Studio的Continuous Delivery扩展

步骤2:在Team Services中创建项目

在这一步中,您将在Team Services中创建一个项目,并将您的项目代码放在那里,而无需离开您的IDE。Team Services是一个工具,可以帮助您构建持续集成和持续交付。

  1. 进入解决方案资源管理器,在基于Web的项目上右键单击。

  2. 单击新的上下文菜单“配置持续交付”。

  3. 会显示一个名为“配置持续交付”的新窗口。点击“添加此项目到源代码控制”的加号按钮。

  4. 在Team Explorer中的“发布到Visual Studio Team Services”部分,点击“发布Git仓库”按钮。

  5. 您的Microsoft账户会自动从IDE中获取。同时显示使用的Team Services域名和存储库名称。点击“发布存储库”按钮以在Team Services中创建一个项目。

  6. 同步完成后,您将看到您的项目已在Team Explorer中创建。

    项目是在团队资源管理器中创建的

    现在,您的项目已经创建到Team Services账户中(源代码已上传,有一个Git仓库,并且正在自动生成连续交付流水线)。

  7. 在输出窗口中,您可以看到已为您的项目设置了CI/CD。

  8. 过一段时间后,您将获得三个不同的链接:

    (1).构建链接

    (2).发布链接

    (3).指向Azure中创建的资产的链接,该资产将成为您部署的目标(应用程序服务)。

链接到在Azure中创建的资产

步骤3:在Team Services中打开项目

构建定义是您定义自动化构建过程的实体。在构建定义中,您组合一组任务,每个任务执行构建的一个步骤。

  1. 在输出窗口中选择提供的构建定义链接并复制。

  2. 将其粘贴到浏览器中,以打开包含您的应用程序的项目在Team Services中。

  3. 显示构建定义的摘要。您可以看到构建已经在运行。

  4. 点击构建链接。

  5. 它显示为正在自动运行您的构建的构建服务器的输出。

  6. 点击“编辑构建定义”。

  7. 添加一个额外的任务。

  8. 自定义已有的任务。

自定义任务

步骤4:测试程序集任务

每个任务都有一个版本选择器,可以让您指定在构建或部署中使用的任务的主要版本。当发布新的次要版本(例如,从1.2到1.3)时,您的构建或发布将自动使用新版本。但是,如果发布了新的主要版本(例如,2.0),您的构建或发布将继续使用您指定的主要版本,直到您编辑定义并手动切换到新的主要版本为止。

  1. 点击“Test Assemblies”。

  2. 您会看到一个小旗标图标,表示该任务的新预览版本可用。点击旗标图标,并选择版本2*以进行预览。

  3. “Test Assemblies”中显示了几个新项目。其中一个是“只运行受影响的测试”。这是一个项目,允许工具分析哪些代码行与过去运行的测试发生了变化,并且您将知道哪些测试执行了哪些代码行(您不需要运行所有测试:您只需运行受到更改影响的测试)。

  4. “在多核机器上并行运行测试”是一个项目,允许您的测试以一种能够利用您可用的所有核心的方式运行。使用此项目,您将有效地增加同时运行的测试数量,从而减少运行所有测试所需的时间。

在多核计算机上并行运行测试-1

在多核计算机上并行运行测试-1

在多核计算机上并行运行测试-2

在多核计算机上并行运行测试-2

步骤5:添加一个额外的任务

任务是定义构建定义中自动化的基本单元,或者在发布定义的环境中。任务只是一个带有一组输入的打包脚本或过程的抽象。有一些内置的任务可以实现基本的构建和部署场景。

  1. 点击“添加任务”的加号按钮,以创建一个新的额外任务。

  2. 会显示一个庞大的任务列表,可以直接运行,从而使您能够针对任何语言/平台(支持Chef、CocoaPods、Docker、Node.js、Java)进行目标设置。

  3. 如果您想安装未列出的其他功能或扩展,请简单点击上述任务列表的上方显示的“检查我们的市场”链接。

添加附加任务

步骤6:设置加密和非加密变量

变量是在构建定义中存储和共享关键数据的好方法。一些构建模板会自动为您定义一些变量。

  1. 点击名称为“变量”的第二个选项卡(位于“任务”选项卡旁边)。

  2. 点击位于变量值旁边的小锁图标,以对其进行加密。

  3. 加密后,变量的值将显示为星号,并且除了加密它的人之外,没有人可以看到这个值。

加密的变量

加密的变量

步骤7:开启持续集成(CI)触发器

在“触发器”选项卡中,您可以指定触发构建的事件。您可以将相同的构建定义用于CI和计划的构建。

  1. 点击第三个选项卡名称为“触发器”,在那里您可以设置您的持续集成。

  2. 启用“禁用此触发器”的复选框意味着每当有人检入代码时,或者换句话说,源代码的新版本可用时,此构建都会自动运行

禁用触发器

禁用触发器

步骤8:构建定义选项

如果构建过程失败,您可以自动创建一个工作项来跟踪问题的修复。您可以指定工作项类型。您还可以选择是否将工作项分配给请求者。例如,如果这是一个CI构建,并且团队成员检入了一些破坏了构建的代码,则将工作项分配给该人员。

  1. 点击第四个选项卡名称为“选项”。

  2. 启用“发生故障时创建工作项”的复选框。CI构建应该在每次检入时进行构建,如果由于开发人员的错误导致某些构建失败,您可以自动创建一个工作项以便跟踪问题的修复。

  3. “默认代理队列”选项显示在选项的后半部分。下拉列表中列出了所有可用的池:

    (1)、默认(如果您的团队使用您自己设置的私有代理)

    (2)、托管(基于Windows的机器,如果您的团队使用VS2017或VS2015)

    (3)、托管Linux预览版(如果您的团队在Ubuntu上使用开发工具)

    (4)、托管VS2017(如果您的团队使用Visual Studio 2017)

默认代理队列选项

默认代理队列选项

步骤9:构建摘要

您可以按照以下步骤查看构建的摘要,即构建过程中发生的所有事情:

生成摘要:最近完成

生成摘要:最近完成

  • 代码覆盖率(Code coverage)

  • 所有工作项和任务(All work items and tasks)

  • 部署(Deployments)

成功生成的列表

步骤10:发布定义

发布定义是VSTS和TFS中发布管理的基本概念之一。它定义了将应用程序部署到各种环境的端到端发布过程。请记住,作为开发人员,您无需离开VS即可将应用程序从VS部署到Azure。

发布定义

发布定义

  1. 一个显示将代码部署到Azure的发布定义被展示出来。

  2. 点击发布定义旁边的三个点。

  3. 从显示的上下文菜单中,选择“编辑”。

编辑屏幕

  • 一系列环境

  • 在每个环境中执行的任务

要在每个环境中执行的任务

步骤11:检查应用程序是否真的从Visual Studio部署到Azure

Microsoft Azure是一个云计算服务,通过全球范围的由Microsoft管理的数据中心,用于构建、测试、部署和管理应用程序和服务。在这一步中,您将验证您的Web应用程序是否已部署在Azure中,按照以下步骤操作:

  1. 进入Azure门户。

  2. 点击“资源组”。

  3. 在搜索框中搜索“demo”。

  4. 在搜索结果中点击您的Web项目“e2edemo”。

  5. 打开Web应用程序链接。

打开web应用程序链接

浏览选项

ASP.NET屏幕

进一步阅读:使用Azure DevOps构建发布流程。

结论

持续集成是一种软件开发实践,每当开发人员推送代码到应用程序时,都会进行构建和测试。持续交付是一种软件工程方法,其中持续集成、自动化测试和自动化部署能力使得软件能够以快速、可靠和重复的方式进行开发和部署,尽量减少人为干预。

高效团队通常会实践持续集成(CI)和持续交付(CD)。VSTS不仅自动化了应用程序的构建、测试和部署,还提供完整的溯源能力,可以查看构建中的所有内容,包括代码更改、审查和测试结果,作为一个完全支持DevOps实践的工具。文章来源地址https://www.toymoban.com/diary/visualstudio/712.html

到此这篇关于使用Visual Studio构建完整的CI/CD流水线的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

原文地址:https://www.toymoban.com/diary/visualstudio/712.html

如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用
从算法到人工智能:生成智能时代编程的演变
上一篇 2024年02月07日 22:39
使用Azure DevOps构建发布流水线
下一篇 2024年02月07日 23:45

相关文章

  • devops-5:从0开始构建一条完成的CI CD流水线

    前文中已经讲述了静态、动态增加agent节点,以动态的k8s cloud为例,下面就以Maven构建Java程序为例,开始构建出一条完整的CI CD流水线。 实现功能目标: 1.分别可以根据分支和tag从源码仓库clone代码 2.拿到源码后开始编译 3.构建image,并push到镜像仓库 4.部署到对应k8s集群 5.部署

    2023年04月20日
    浏览(61)
  • CI/CD---使用新版云效流水线自动部署Java项目

    两大基本前提: 1、有一个自己的云服务器 2、项目代码已经提交到代码仓库,如gitee,github等 为什么需要流水线 1、除了第一次需要新建流水线,配置脚本外,后续所有的部署只需要提交代码后,点击运行流水线就行 。 2、流水线还可以回滚,此功能太过友好了。 3、当然,

    2024年02月06日
    浏览(64)
  • 你以为搞个流水线每天跑,团队就在使用CI/CD实践了?

    在实践中,很多团队对于DevOps 流水线没有很透彻的理解,要不就创建一大堆流水线,要不就一个流水线通吃。实际上,流水线的设计和写代码一样,需要基于“业务场景”进行一定的设计编排,特别是很多通过“开源工具”搭建的流水线,更需要如此(商业的一体化平台大部

    2024年02月08日
    浏览(54)
  • CI/CD流水线实战

    不知道为什么,现在什么技术都想学,因为我觉得我遇到了技术的壁垒,大的项目接触不到,做的项目一个字 辣* 。所以,整个人心浮气躁,我已经得通过每天的骑行和长跑缓解这种浮躁了。一个周末,我再次宅在了家里,学习了一下 CICD 。 先分享一下 shigen 的学习视频资源

    2024年02月12日
    浏览(65)
  • CI/CD 流水线 (FREE)

    流水线是持续集成、交付和部署的顶级组件。 流水线包括: 工作,定义 做什么 。例如,编译或测试代码的作业。 阶段,定义 何时 运行作业。例如,在编译代码的阶段之后运行测试的阶段。 作业由 runners 执行。如果有足够多的并发运行程序,同一阶段的多个作业将并行执

    2024年02月10日
    浏览(70)
  • 软件研发CI/CD流水线图解

      当谈到现代软件开发流程时,持续集成(Continuous Integration,简称CI)和持续交付(Continuous Delivery,简称CD)是两个关键的实践。它们旨在加速开发流程、提高软件质量,并使软件发布更加可预测和可靠。 以下是关于CI/CD的详细背景和解决方案的说明: 在传统的软件开发中,

    2024年02月11日
    浏览(98)
  • CI/CD流水线插件在服务质量看护中的实践

    CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD 的核心概念是持续集成、持续交付和持续部署。 作为一种面向开发和运维团队的解决方案,CI/CD 主要针对在集成新代码时所引发的问题(亦称:“集成地狱”)。 具体而言,CI/CD 可让持续自动化

    2024年01月23日
    浏览(87)
  • 在 CI/CD流水线中运行自动化单元测试的4个原因

    目录 什么是单元测试? C#中的单元测试示例 我需要在CI/CD 流水线中运行自动化测试吗? 开发人员代码验证反馈循环 预验证 步步为营 减少“另一个开发人员写了这段代码”的问题 单元测试 什么是单元测试? 单元测试是一小段代码,用于测试应用程序编写的代码的逻辑。单

    2024年02月16日
    浏览(102)
  • 【业务功能115】微服务-springcloud-springboot-Kubernetes-k8s集群-Kubesphere实现DevOps流水线-CI/CD-SonarQube- Jenkins

    dev 怎么开发 ops 怎么运维 参考项目链接:https://github.com/kubesphere/devops-maven-sample 持续集成是指软件个人的部分向软件整体部分交付,频繁进行集成以便更快地发现其中错误。 CI需要具备这些: 全面的自动化测试 这是实践持续集成持续部署的基础,同时,选择合适的自动化测

    2024年02月04日
    浏览(88)
  • [Gitlab CI] 自动取消旧流水线

    当某一分支开启 Merge Request 后只要提交一次 commit 就会自动创建一个新的流水线,此时之前的 Pipeline 不会被取消,经过下面的设置后可以实现自动取消旧流水线的功能。 ❗️通过提交(commit)触发的同一分支流水线可以自动冗余取消,但是通过手动触发的同一分支流水线不会

    2024年03月12日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包