Azure DevOps in Action - 透過Trigger實現CI

上一篇,我們介紹過如何建立Build Pipeline,完成自動化的建置之後,我們接著要來看如何透過Build Process中的Trigger實現CI(Continuous Integration)。

也就是說,我們要讓雲端上的CI Build Pipeline在有任何程式碼被簽入(異動)的時候,自動運行雲端的Build

enter image description here
我們來修改一下上面這段程式,讓CI Build可以正確地完成Pipeline中的每一個tasks。

但在開啟Visual Studio 2019進行程式碼修改之前,我們先在Pipeline上做一件事情,請點選下圖的Edit切換到Pipeline設計畫面:
enter image description here

進入到設計畫面之後,請在Triggers分頁,勾選『enable continuous integration』:
enter image description here

請留意上圖中的A選項,這意味著,若source code所在的repo中,master分支上的code有所異動時(不管是直接修改或是透過PR修改),就會自動觸發這個Pipeline進行自動建置,這就是所謂的CI(continuous integration)。

設計完成之後,這次我們只需要選擇Save,暫時先不queue一個執行個體(instance):
enter image description here

因為我們要讓你體驗看看CI Build的威力,待會讓CI機制幫我們自動觸發Build Process。

請依照上圖儲存完之後,回到你用戶端剛才Visual Studio 2019開啟的專案(如果你不想使用Visual Studio 2019,其實也可以用Azure DevOps內建的Web UI,這部分我們日後介紹),我們把關鍵程式碼(\WebBMI\HealthMgr\BmiCalculator.cs)從int改成float:

enter image description here

完成後,我們透過Git工具將程式碼同步到伺服器端:
enter image description here

當同步完成後,我們可以切換到Azure DevOps管理站台,你會發現由於我們修改了master分支上的程式碼,雲端的Pipeline CI Build被自動觸發了:
enter image description here

同時,由於我們把程式碼改成正確的了,因此Unit Test順利過關:
enter image description here
整個CI Build自動完成了。

到這邊,我們可以看到幾個結論:

  1. Pipeline可以在雲端對專案作自動化的建置。
  2. 如果將Pipeline的Trigger設定成C I(continuous
    integration),任何開發人員只要簽入master分支(不管是直接修改或PR),都會觸發雲端的Pipeline進行Auto-Build。
  3. Pipeline中可以加入各種Task,例如進行建置的Build Solutions(下圖A),或是進行Unit Test的Test Assemblies(下圖B)
    enter image description here
  4. Tasks定義了Pipeline中具體要執行的工作與步驟。

好,我們暫且先整理到這邊。

我們曾經說過,不同語言或不同開發框架,所需要設計的Pipeline會有所不同,而Azure DevOps不只支援一種,而是坊間幾乎所有的開發技術都有所支援(Java, PHP, Python, Node.js, …etc.)。

我們剛才看了 .net framework的Web應用程式,後面我們來看 .net core 的Pipeline 該如何設計。

----------------------------------------------------------
本文摘錄自『Azure DevOps敏捷開發與專案管理實戰

留言

這個網誌中的熱門文章

在POC或迷你專案中使用 LiteDB

使用Qdrant向量資料庫實作語意相似度比對

使用 Airtable 在小型需求上取代傳統資料庫

專業的價值...

精彩(且驚人)的Semantic Kernel入門範例