建设一个电影网站怎么做,学校网站建设电话,网站开发工作职责,网站运营写营销上次介绍了Azure Application Insights#xff0c;实现了.net core程序的监控功能。这次让我们来看看Azure DevOps Pipeline功能。Azure DevOps Pipeline 是Azure DevOps里面的一个组件#xff0c;对于12个月试用账号同样永久免费。持续集成CI持续集成指的是#xff0c;频繁… 上次介绍了Azure Application Insights实现了.net core程序的监控功能。这次让我们来看看Azure DevOps Pipeline功能。Azure DevOps Pipeline 是Azure DevOps里面的一个组件对于12个月试用账号同样永久免费。持续集成CI持续集成指的是频繁地一天多次将代码集成到主干。它的好处主要有两个。1快速发现错误。每完成一点更新就集成到主干可以快速发现错误定位错误也比较容易。
2防止分支大幅偏离主干。如果不是经常集成主干又在不断更新会导致以后集成的难度变大甚至难以集成。
持续集成的目的就是让产品可以快速迭代同时还能保持高质量。它的核心措施是代码集成到主干之前必须通过自动化测试。只要有一个测试用例失败就不能集成。Martin Fowler说过持续集成并不能消除Bug而是让它们非常容易发现和改正。摘自阮一峰大神的blogDevOps跟CI就不多介绍了。这里我们定个目标当我们提交代码后服务器自动编译代码自动运行单元测试自动发送成功失败的邮件。创建组织开通Azure DevOps功能第一步需要创建一个组织。随便取个组织名称区域还是那个套路选近的这里选东亚。创建仓库点击继续之后页面会跳转到正式的Azure DevOps界面。首先需要创建一个项目。这里跟Github一样需要选择私有还有公开估计Azure DevOps后端其实就是使用了Github的服务。这里选一个私有的吧取个项目名称devop_test 还可以设置用户名密码等信息。创建ASP.NET MVC项目新建一个ASP.NET MVC项目就默认的示例项目就行。为了让pipeline执行单元测试所以我们新建一个单元测试功能然后写一个最简单的单元测试方法。 [TestClass()]public class WeatherForecastControllerTests{[TestMethod()]public void GetTest(){var ctrl new WeatherForecastController(null);var result ctrl.Get();Assert.IsNotNull(result);}}
上传代码到仓库有了代码之后我们要把代码传到仓库里去。就是使用上面的仓库的地址、用户名、密码。这是git的问题了不多说了。那么上面是一些准备工作下面开始正式使用pipeline。配置Pipeline点击左侧的pipeline菜单开始配置pipeline的导航。第一步需要配置代码仓库选择刚才的Azure Repos Git。当然它还支持从Github或者别的地方拉代码。第二步选择刚才的devop_test仓库。第三步开始配置yml。这个yml呢其实跟docker-compose的配置啊dockerfile啊一样就是配置了一些列的任务task。trigger:
- master
pool:vmImage: ubuntu-18.04
variables:solution: **/*.slnbuildPlatform: Any CPUbuildConfiguration: Release
steps:
- task: DotNetCoreCLI2inputs:command: restore
- task: DotNetCoreCLI2displayName: Buildinputs:command: buildprojects: **/*.csprojarguments: --configuration $(buildConfiguration)
- task: DotNetCoreCLI2inputs:command: testprojects: **/*Tests/*.csprojarguments: --configuration $(buildConfiguration)
大概讲下这个yml配置了啥。trigger:表示代码的分支vmImage表示虚拟机的环境是win还是linux。variables定义了一些参数后面的设置可以直接使用。steps步骤里面每一个task就是一个步骤。taskcommand: restore nuget包还原。command: build 编译代码。command: test 运行单元测试。配置好yml之后点击“SAVE AND RUN”就会执行第一次pipeline的任务。运行之后任务会先进入队列等待一会就能看到任务是否执行成功了。下面这图就表示任务执行成功了。每一步绿色的勾勾还有执行了几秒都会显示出来。还可以看更加详细的日志。这个界面表示运行的单元测试的结果。成功了几个失败了几个表示的都很清楚。成功之后你的账户邮箱还会收到邮件通知成功是绿色的。前面都是成功的我们故意把代码写个错误然后直接提交代码看看build能不能过。 [HttpGet]public IEnumerableWeatherForecast Get(){var rng new Random();return Enumerable.Range(1, 5).Select(index new WeatherForecast{Date DateTime.Now.AddDays(index),TemperatureC rng.Next(-20, 55) //error ,去掉了一个逗号Summary Summaries[rng.Next(Summaries.Length)]}).ToArray();}
改完代码后提交上去。可以看到任务会自己执行然后过一会出现了一个红色的X。果然pipeline报错了。点击任务可以看到更加详细的错误列表。同时也受到了失败的邮件通知。总结这次我们通过Azure DevOps Pipeline简单演示了CI的整个过程。我们成功实现了一开始定的小目标写代码提交代码编译运行测试发送通知。除了yml配置有点麻烦整个过程也都是很简单而且是这个功能都是免费的。Azure DevOps pipeline除了CI显然还能实现CD如何编译docker镜像如果推送镜像如果部署镜像那么请看下篇吧。关注我的公众号一起玩转技术