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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于事件驱动架构构建微服务第11部分:持续集成

發布時間:2023/12/4 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于事件驱动架构构建微服务第11部分:持续集成 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文鏈接:https://logcorner.com/building-microservices-through-event-driven-architecture-part12-continuous-integration/

在本教程中,我將展示如何設置docker持續集成以在docker容器內構建和運行單元測試。

因為我將使用kubernetes在容器中運行微服務,所以單元測試、集成測試、持續集成和持續交付將使用docker鏡像和容器來完成。

創建Azure DevOps項目

我要構建的項目的代碼源在github https://github.com/logcorner/LogCorner.EduSync.Speech.Command

因此,我至少有2個解決方案來使用相關的git存儲庫設置azure devops持續集成:

  • 我可以將代碼源導入azure devops并使用Azure Repos Git,這樣代碼源將被導入到azure devops

  • 我也可以使用Github中的repository,代碼源在github上

我將展示如何設置這兩個解決方案,但在本教程中,我將使用第二個解決方案。

創建項目

打開https://dev.azure.com/并創建一個帳戶或登錄(如果你已有帳戶)

然后創建一個新項目,我將其命名為LogCorner.EduSync.Speech.Command

我將可見性設為公開,因為它是一個演示,使用git版本控制選項和Scrum

創建Azure DevOps管道

選擇代碼源

方案一:導入github代碼源

選擇左側的Repos,然后點擊files,然后點擊import

轉到你的github帳戶并復制存儲庫的url以導入 https://github.com/logcorner/LogCorner.EduSync.Speech.Command.git

然后我將創建一個個人訪問令牌,因為gihub將使用它來授權對存儲庫的訪問。

要創建個人訪問令牌 (PAT),請選擇設置,然后選擇開發人員設置

單擊個人訪問令牌,單擊新建個人訪問令牌,為其命名并選擇范圍

對于我選擇的repo范圍,設置并運行構建就足夠了

將github存儲庫url和PAT粘貼到azure devops彈出窗口中,輸入用戶名并單擊導入

在azure devops上導入代碼源如下:

方案二:使用github作為代碼源

對于此選項,你必須先創建構建管道并選擇github作為選定源,github會要求我使用OAuth設置可信連接。

選擇左側的Pipelines并點擊Create Pipeline

選擇Github,給一個連接名稱并點擊授權

它會提示你輸入github憑據

接受,然后選擇要構建的存儲庫和分支,然后單擊繼續。

這里我選擇了logcorner/LogCorner.EduSync.Speech.Command和master分支。

創建管道任務

我使用了經典編輯器并創建了一個空管道

構建任務

對于構建任務,我使用docker-compose任務,我必須使用文件運行Docker-compose build命令:

  • docker-compose.yml

  • docker-compose.override.yml

  • docker-compose-unit-tests.yml

  • docker-compose.override-unit-tests.yml

這是此構建任務的yaml

此任務的yaml文件位于此處:LogCorner.EduSync.Command\src\CICD\BuilTask.yml

運行單元測試任務

對于運行單元測試任務,我使用docker-compose任務,我必須使用文件運行Docker-compose up命令:

  • docker-compose.yml

  • docker-compose.override.yml

  • docker-compose-unit-tests.yml

  • docker-compose.override-unit-tests.yml

這是運行單元測試任務的yaml代碼

LogCorner.EduSync.Command\src\CICD\PublishTestResultTask.yml

我使用一個docker-compose任務來運行4個項目的單元測試,因此一個項目單元測試可能失敗而其他項目成功。

我發現的最簡單的方法是即使測試失敗也讓任務通過,然后如果測試失敗則發布測試結果任務失敗。

另一種解決方案是為每個項目創建一個運行單元測試任務,并使用運行特定服務鏡像操作而不是運行docker-compose命令

此任務的yaml文件位于此處:LogCorner.EduSync.Command\src\CICD\RunUnitTestTask.yml

發布測試結果任務

這是發布測試結果任務的yaml文件

此任務的yaml文件位于此處:LogCorner.EduSync.Command\src\CICD\PublishTestResultTask.yml

運行構建

為了測試構建配置,我可以觸發一個新的構建

構建日志

測試結果

代碼源可在此處獲得:https://github.com/logcorner/LogCorner.EduSync.Speech.Command/tree/Feature/DevOps

azure devops項目在這里 https://logcorner.visualstudio.com/LogCorner.EduSync.Speech.Command

總結

以上是生活随笔為你收集整理的基于事件驱动架构构建微服务第11部分:持续集成的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。