日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

使用Azure DevOps Pipeline实现.Net Core程序的CI

發(fā)布時間:2023/12/4 asp.net 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Azure DevOps Pipeline实现.Net Core程序的CI 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

上次介紹了Azure Application Insights,實現(xiàn)了.net core程序的監(jiān)控功能。這次讓我們來看看Azure DevOps Pipeline功能。Azure DevOps Pipeline 是Azure DevOps里面的一個組件,對于12個月試用賬號同樣永久免費。

持續(xù)集成CI

持續(xù)集成指的是,頻繁地(一天多次)將代碼集成到主干。它的好處主要有兩個。

(1)快速發(fā)現(xiàn)錯誤。每完成一點更新,就集成到主干,可以快速發(fā)現(xiàn)錯誤,定位錯誤也比較容易。 (2)防止分支大幅偏離主干。如果不是經(jīng)常集成,主干又在不斷更新,會導(dǎo)致以后集成的難度變大,甚至難以集成。

持續(xù)集成的目的,就是讓產(chǎn)品可以快速迭代,同時還能保持高質(zhì)量。它的核心措施是,代碼集成到主干之前,必須通過自動化測試。只要有一個測試用例失敗,就不能集成。Martin Fowler說過,"持續(xù)集成并不能消除Bug,而是讓它們非常容易發(fā)現(xiàn)和改正。"
摘自阮一峰大神的blog

DevOps跟CI就不多介紹了。這里我們定個目標(biāo):當(dāng)我們提交代碼后,服務(wù)器自動編譯代碼,自動運行單元測試,自動發(fā)送成功失敗的郵件。

創(chuàng)建組織

開通Azure DevOps功能,第一步需要創(chuàng)建一個組織。

隨便取個組織名稱,區(qū)域還是那個套路,選近的,這里選東亞。

創(chuàng)建倉庫

點擊繼續(xù)之后頁面會跳轉(zhuǎn)到正式的Azure DevOps界面。首先需要創(chuàng)建一個項目。這里跟Github一樣,需要選擇私有還有公開,估計Azure DevOps后端其實就是使用了Github的服務(wù)。這里選一個私有的吧,取個項目名稱:devop_test ,還可以設(shè)置用戶名密碼等信息。

創(chuàng)建ASP.NET MVC項目

新建一個ASP.NET MVC項目,就默認(rèn)的示例項目就行。

為了讓pipeline執(zhí)行單元測試,所以我們新建一個單元測試功能,然后寫一個最簡單的單元測試方法。

[TestClass()]public class WeatherForecastControllerTests{[TestMethod()]public void GetTest(){var ctrl = new WeatherForecastController(null);var result = ctrl.Get();Assert.IsNotNull(result);}}

上傳代碼到倉庫

有了代碼之后我們要把代碼傳到倉庫里去。就是使用上面的倉庫的地址、用戶名、密碼。這是git的問題了,不多說了。那么上面是一些準(zhǔn)備工作,下面開始正式使用pipeline。

配置Pipeline

點擊左側(cè)的pipeline菜單,開始配置pipeline的導(dǎo)航。
第一步:需要配置代碼倉庫,選擇剛才的Azure Repos Git。當(dāng)然它還支持從Github或者別的地方拉代碼。

第二步:選擇剛才的devop_test倉庫。

第三步:開始配置yml。這個yml呢其實跟docker-compose的配置啊,dockerfile啊一樣,就是配置了一些列的任務(wù)(task)。

trigger: - master pool:vmImage: 'ubuntu-18.04' variables:solution: '**/*.sln'buildPlatform: 'Any CPU'buildConfiguration: 'Release' steps: - task: DotNetCoreCLI@2inputs:command: 'restore' - task: DotNetCoreCLI@2displayName: Buildinputs:command: buildprojects: '**/*.csproj'arguments: '--configuration $(buildConfiguration)' - task: DotNetCoreCLI@2inputs:command: testprojects: '**/*Tests/*.csproj'arguments: '--configuration $(buildConfiguration)'

大概講下這個yml配置了啥。
trigger:表示代碼的分支
vmImage:表示虛擬機的環(huán)境,是win還是linux。
variables:定義了一些參數(shù),后面的設(shè)置可以直接使用。
steps:步驟,里面每一個task就是一個步驟。
task:
command: 'restore' nuget包還原。
command: 'build' 編譯代碼。
command: 'test' 運行單元測試。
配置好yml之后點擊“SAVE AND RUN”就會執(zhí)行第一次pipeline的任務(wù)。運行之后任務(wù)會先進入隊列,等待一會就能看到任務(wù)是否執(zhí)行成功了。

下面這圖就表示任務(wù)執(zhí)行成功了。每一步綠色的勾勾,還有執(zhí)行了幾秒都會顯示出來。還可以看更加詳細(xì)的日志。

這個界面表示運行的單元測試的結(jié)果。成功了幾個,失敗了幾個,表示的都很清楚。

成功之后你的賬戶郵箱還會收到郵件通知,成功是綠色的。

前面都是成功的,我們故意把代碼寫個錯誤,然后直接提交代碼,看看build能不能過。

[HttpGet]public IEnumerable<WeatherForecast> 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();}

改完代碼后提交上去??梢钥吹饺蝿?wù)會自己執(zhí)行,然后過一會出現(xiàn)了一個紅色的X。果然pipeline報錯了。點擊任務(wù)可以看到更加詳細(xì)的錯誤列表。

同時也受到了失敗的郵件通知。

總結(jié)

這次我們通過Azure DevOps Pipeline簡單演示了CI的整個過程。我們成功實現(xiàn)了一開始定的小目標(biāo):寫代碼>提交代碼>編譯>運行測試>發(fā)送通知。除了yml配置有點麻煩,整個過程也都是很簡單,而且是這個功能都是免費的。Azure DevOps pipeline除了CI,顯然還能實現(xiàn)CD,如何編譯docker鏡像,如果推送鏡像,如果部署鏡像,那么請看下篇吧。

關(guān)注我的公眾號一起玩轉(zhuǎn)技術(shù)???

總結(jié)

以上是生活随笔為你收集整理的使用Azure DevOps Pipeline实现.Net Core程序的CI的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天爽影院| 国产成人无码性教育视频 | 蜜臀在线视频 | 男人的天堂99 | 91成人精品 | 光棍影院一区二区 | 91学生片黄 | 巨大胸大乳奶电影 | 女同性恋毛片 | 国产精品日日做人人爱 | 五月天久久久久 | 91欧美精品 | 少妇与公做了夜伦理 | 国产黄av| 国产精品无码一区二区无人区多人 | 波多野结衣国产在线 | a在线视频| 天天操你 | 91精品国产综合久久香蕉 | 在线亚洲精品 | 国产精品色 | 日本全黄裸体片 | 日韩一级av毛片 | 玖玖视频网| 伊人久久成人网 | 欧美黄色片免费看 | 欧美成人性生活视频 | 中文字幕亚洲激情 | 少妇精品亚洲一区二区成人 | 日韩久久精品一区二区 | 天天综合天天 | jizz18国产| 99热91| 国产色自拍 | 欧美成人三级在线视频 | 欧美整片第一页 | 深夜在线 | 蜜臀视频一区二区 | www.日韩一区| 波多野结衣乳巨码无在线观看 | 国产精品1区2区 | 国产又色又爽又高潮免费 | 国产在线www| 久久有精品 | 亚洲无码精品在线播放 | 亚洲特黄一级片 | 久久在线看 | 中文字幕在线不卡视频 | 99热8 | 国产精品无码免费播放 | 国产男女猛烈无遮挡免费观看网站 | 夜夜爽夜夜叫夜夜高潮漏水 | www.色午夜 | 黄色激情网址 | 亚洲第一页中文字幕 | 网友自拍视频 | 欧美xxxx非洲| 国产精品久久国产愉拍 | 久久视频在线播放 | 免费福利视频网站 | 欧美日韩在线视频一区二区三区 | 全部免费毛片在线播放高潮 | 老熟妇午夜毛片一区二区三区 | 免费啊v在线观看 | 红桃视频一区二区三区免费 | 久久精品国产露脸对白 | 日韩乱码人妻无码系列中文字幕 | 成人小说亚洲一区二区三区 | 色戒电影未测减除版 | 337p亚洲精品色噜噜噜 | 九七影院在线观看免费观看电视 | wwww日本60| 香蕉视频网站在线 | 夜夜爽妓女8888视频免费观看 | 国产精品vip | 欧美成人久久久 | 中文字幕人乱码中文字 | 午夜精品久久久久久久四虎美女版 | 国产理伦 | 国产在线激情 | 久久久精品蜜桃 | 黑人玩弄人妻一区二区绿帽子 | 久久性 | 国产日日操 | 中文字幕在线观看日韩 | 精品人妻互换一区二区三区 | 舔花蒂| 女性裸体不遮胸图片 | wwwxxoo| 婷婷6月天 | 91精品人妻一区二区三区蜜桃欧美 | 国产精品天天狠天天看 | av鲁丝一区二区鲁丝 | 久操国产视频 | 91玉足脚交嫩脚丫在线播放 | 8x8ⅹ8成人免费视频观看 | 一区二区国产精品精华液 | 亚洲综合少妇 | 亚洲av永久无码精品一区二区国产 |