您当前的位置: 首页 >  .net

寒冰屋

暂无认证

  • 0浏览

    0关注

    2286博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

使用VSTS为ASP.NET Core构建DevOps CI/CD管道

寒冰屋 发布时间:2020-04-14 21:33:26 ,浏览量:0

目录

介绍

让我们深入了解基本概念

单体架构和微服务架构

敏捷和DevOps

DevOps背后的推动力

持续集成

持续交付

持续部署

使用VSTS的ASP.NET Core应用程序的自动化CI

先决条件

使用VSTS创建团队项目

为ASP.NET Core应用程序创建新的构建定义

创建新发布定义

介绍

基于Web的应用程序使我们的工作更加轻松。特别是当我们需要屏幕之间的交互时,我们可以考虑使用单页应用程序(SPA)。对于SPA,我们可能需要Web-pack或grunt或gulp等用于合并和捆绑我们的客户端脚本。单击此处获取基本信息。假设我们使用ASP.NET Core,则可能需要使用npm或bower或yarn等来管理软件包,以便我们可以还原软件包并编译应用程序。但是,如果您没有自动CI/CD。那么第一次部署单个页面的应用程序也很困难。在本文中,我的主要重点是向您展示如何使用VSTS为ASP.NET Core应用程序创建构建和发布。

让我们深入了解基本概念 单体架构和微服务架构

曾经有一段时间,单体架构是一种普遍的做法,瀑布模型很受欢迎。在这种方法论中,一切都被视为一个大项目,即结构化和顺序化的过程。现在,它被分解成小块,并且是迭代的。是的,我的意思是微服务架构和敏捷方法论。

敏捷和DevOps

我们知道敏捷是一种开发方法。DevOps这个词就是Agile的扩展,它主要侧重于开发过程到生产支持。可以说,这是软件开发与运营的结合。

DevOps背后的推动力

在谈论DevOps时,经常会提到以下术语:

  • 持续集成(CI)
  • 连续交付(CD)
  • 持续部署(CD)
持续集成

一天中,开发人员会多次签入/提交并将代码合并到共享存储库(Git,Team Foundation版本控制等)中,并且在合并这些代码后,它会自动构建并运行自动化测试。

持续交付

在代码集成之后,将构建并测试代码。现在可以将代码推送到暂存环境(非产品测试)或生产中,但是您需要手动批准才能推送代码。

持续部署

在代码集成之后,将构建并测试代码。现在,未经任何批准,它会自动推送到暂存环境(非产品测试)或生产中。

使用VSTS的ASP.NET Core应用程序的自动化CI 先决条件

您需要Visual Studio Team Services帐户和Git帐户。没有一个?您可以从https://www.visualstudio.com和https://github.com创建一个新的免费帐户。

使用VSTS创建团队项目

1、选择项目>新项目。

2、为项目提供一个名称,然后为您的项目选择正确的版本控制Git或TFVC。选择一个工作项目流程。单击创建按钮创建项目。

3、单击Clone in Visual Studio。

4、VS IDE将弹出一个窗口。单击克隆按钮。

5、选择Team Explorer,然后单击Create a new project or solution。

创建项目后,您需要提交所有更改。单击团队资源管理器>更改。填写更改评论,然后单击全部提交。

6、单击同步以同步代码。

7、最后,单击“发布”(Outgoing Commits>Publish)。

为ASP.NET Core应用程序创建新的构建定义

1、选择Build&Release选项卡,然后选择Builds。

2、选择新建以创建新定义。

3、选择项目,存储库,分支,然后单击继续。

4、根据您的项目类型选择build模板。我选择ASP.NET Core(.NET Framework),然后单击“Apply”按钮以生成内部定义。

5、选择Process任务,并填写构建定义的名称(例如HelloWorld-Dev,我们将在发行版中使用此名称)。选择Hosted VS2017作为要在其中运行构建的默认代理。

如果您的团队使用Visual Studio 2017,则选择Hosted VS2017,然后它具有.NET Core框架并需要其他组件来构建项目。如果您的团队在Ubuntu上使用开发工具,请选择Hosted Linux。如果您的团队使用Visual Studio 2013或Visual Studio 2015,请选择“托管”。

选择项目解决方案文件作为“solution或packages.config的路径”,并填写工件名称。

6、选择获取源任务并检查正确的项目,存储库和分支。选择clean: true和“ clean options: sources。标签来源:Never。报告:build status。

7、选择生成解决方案从第一阶段任务1.选择的Visual Studio版本:最新的。MSBuild体系结构:选择适合您的X64或X86。

Webpack的应用程序构建和捆绑

8、我们需要添加npm安装用于项目的所有软件包。要添加npm task,请单击第1阶段右侧的(+)Add Task,然后选择Package。查找并添加npm任务。现在将npm任务拖放到Build solution之前。如果您使用Bower而不是npm,则需要添加Bower。

现在选择npm任务并选择Command:install。现在对于“带有package.json的工作文件夹”,选择具有package.json文件的主项目的根文件夹。选择自定义注册和身份验证注册>要使用的注册:在我的.npmrc 中注册;高级>详细日志记录:已选中;控制选项>启用:选中。

9、接下来,我们将需要PowerShell脚本任务来编译我们的客户端脚本。在这里,我们将安装webpack并使用web-pack编译JavaScript。选择(+)添加任务,然后从“构建”部分中查找PowerShell。将其添加到npm install和“构建解决方案”任务之间的构建定义中。

填写以下信息:

  • 显示名称:PowerShellScript
  • 类型:内联脚本
  • 内联脚本:
(Get-Item -Path ".\" -Verbose).FullName
$env:Path=[System.Environment]::GetEnvironmentVariable("Path","Machine")+";"+
[System.Environment]::GetEnvironmentVariable("Path","User")
Get-Command -CommandType Application -ErrorAction SilentlyContinue 
-Name webpack | Select-Object -ExpandProperty Definition | echo
npm install -g webpack --no-optional
node_modules\.bin\webpack -p
  • 高级>工作文件夹:您拥有webpack.config.js文件的Web应用程序的根文件夹。
  • 标准错误失败:已选中
  • 控制选项:选中启用&继续出错
  • 运行此任务:仅当所有先前任务都成功时。

10、选择触发器选项卡,然后选择以下信息。

  • 实现持续集成
  • 在构建过程中批量更改
  • 分支过滤器>类型:包括&分支规范:即dev或qa或master

11、选择选项选项卡,然后选择以下信息。

  • 新的构建请求处理:已启用。
  • 自动链接此版本中的新作品:已启用。
  • 仅链接到添加到规范分支的工作链接>类型:包括;分支规范:即dev。
  • 您还可以更改“构建”作业的默认值。

12、最后,单击 Save & queue>Save以保存构建定义。

现在,如果您将代码更改提交到选定的分支中,那么我们将实现CI自动构建,那么您将看到以下输出……。

创建新发布定义

1、转到“构建和发布”选项卡>“发布” >“新定义”。

注意:如果您已经拥有现有发布,则选择加号(+)和创建发布定义。

2、选择一个模板:IIS网站和SQL数据库部署。

3、您将获得一个环境窗口。现在,从属性中更改环境名称。

4、在“工件”面板中,选择+ Add,然后选择项目,源(构建定义),默认版本和源别名的名称。点击添加按钮。

5、单击闪电触发连续部署,然后在右侧启用它。如果希望在新发布的源工件可用时创建新版本,则需要它。单击添加按钮,然后选择类型和构建分支。

6、单击环境的闪电,然后:

  • 选择触发器:发布后
  • 工件过滤器:已启用
  • 选择+添加>工件名称(即HelloWorld-Artifact-Dev)
  • 类型:包含;构建分支:即Dev; 构建标签:留空。

7、在浏览器的左侧,从“环境”面板中选择任务或选择任务(2个阶段,2个任务)。这些任务将执行您的部署过程。

8、现在,选择“任务”>“任务环境”(例如HelloWorld-Dev-Env),并填写以下信息:

  • 配置类型:IIS网站
  • 行动:创建或更新
  • 网站名称: HelloWorldApp-Dev
  • 应用程序池>名称: HelloWorldApp-Dev
  • 单击添加绑定>…按钮。“添加绑定”窗口将弹出并填充以下信息:
  • 协议:http或https,端口:IIS分配的端口(即543)和HostName:即,helloWorldApp-dev.yourDomain.com。

9、单击左侧的“IIS部署”,然后选择部署组。

10、选择IIS Web App管理并填写信息:

  • 物理路径:%SystemDrive%\inetpub\wwwroot\Dev\HelloWorldApp-Dev\
  • 物理路径身份验证:应用程序用户(直通)
  • .NET版本:v4.0
  • 托管管道模式:集成
  • 身份:选择您喜欢的身份

11、选择“IIS Web App部署”,然后选中“使应用程序脱机”。

12、我没有使用SQL部署任务。因此,如果不需要,您可以禁用或删除该任务。选择“SQL部署”,然后右键单击它以“禁用所选任务”或“删除所选任务”。

13、最后,单击“保存”按钮以保存版本定义。

注意:不要忘记设置IIS配置。

关注
打赏
1665926880
查看更多评论
立即登录/注册

微信扫码登录

0.0505s