Google Code Prettify

2022年12月20日 星期二

Azure DevOps: CI Tutorial

  • 登入 Azure DevOps

Azure DevOps 的網址是 https://dev.azure.com,注意網頁有兩個【Sign in】,右上角會登入到 Azure portal,要使用左下角的【Sign in to Azure DevOps】才能正確登入到 Azure DevOps。

  • 建立組織

在 Azure DevOps 裡,最上層的結構是 Organization (組織),在 Ogranization 下會有許多 Project (專案)。所以,使用 Azure DevOps,第一個步驟就是【New organization】。

按了上圖的【New ogranization】會出現如下的彈出畫面,只要輸入組織名稱,並選擇這個組織下的 project 要放在那裡的機房,然後按【Continue】。


  • 建立專案
如下,可以看到左邊選單出現上面建立的 Organization。這時候可以為這個組織建立第一個 project。
如下圖,輸入 project 名稱後按【Create project】。

  • 專案版面簡介

建立 project 後會出現如下畫面,右上角的【Invite】按下去,可以邀請專案成員,左邊選單的 Repos,是 git repo,用來版控程式碼,左邊選單的 Pipeline,可用來建立 CI 流程。

  • 程式碼版控 - 加入公鑰

點選左邊選單的「Repos」,選擇通訊協定為 SSH,然後按【Manage SSH Keys】。
出現如下畫面後按【New Key】。
popup 出如下畫面,加一把公鑰,這裡為公鑰命名為 demo-key,按【Add】。

  • 匯入程式碼

我程式早寫好,所以偷懶的按上面紅色的複製,並且在本機一個空目錄 git clone 一份,把 .git 版控設定建立好,然後把我的程式碼搬進該目錄後,commit、push 到 Azure DevOps 的 git repos,push 進去後,可以看到如下的結果。

  • 建立 CI pipeline

如上,點選左邊選單的【Pipelines】,再點選中間的【Create Pipeline】,可以建立 CI pipeline。當出現如下畫面,選擇「Azure Repos Git」,因為在上一個步驟我們是把程式碼版控在 Azure Repos Git。
如下,「spring-security-authentication」是前面建立的專案,裡面已經有程式碼,點選進入下一步驟。
剛剛匯入的程式,根目錄有一個 build.gradle,是以 Gradle 進行 artifacts 管控的專案,所以,這裡就選擇用 Gradle,這樣 pipeline 會在 build 的過程採用 Gradle。

底下是 azure-pipelines.yml 的內容,這當然是可以依需要修改,我把 jdk 版本由 1.8 改成 17,然後按【Save and run】。

當彈出如下畫面時,commit message 就隨意填一些讓自己看的懂的訊息,然後按【Save and run】。
為什麼會出現下面的錯誤訊息呢? 因為這個 organization 沒有綁定到某個 Azure 的訂閱帳號!

  • 組織綁定 Billing


在組織層級,左邊選單選「Billing」出現右邊的畫面,按【Set up billing】。出現如下畫面後按【Save】。

上面的【Save】按了之後會出現如下畫面,紅框的值預設是 0,必須給它們一點錢才能 run,這裡先設定為 20 美元,然後按最下面的【Save】。

  • 測試 CI pipeline


回到專案的 Pipelines 畫面,可以看到唯一的一條 pipeline 及最後一次執行結果,選擇這個 pipeline,會進入下面的畫面,如果要看 pipeline 的資訊,可以先點選 pipeline 後再按【Run】,這裡直接按右上的【Run pipeline】即可。

出現如下畫面,按【Run】。

執行 CI 的過程會如下,Jobs 的 Status 會一直變,如果想看執行細節,可以按紅色。

因為前面我們選擇這是個 Gradle 專案,CI 就會用 Gradle 執行,包含所有單元測試,測試沒問題會包成 jar 檔。

Job 執行完,Status 顯示 Success,表示所有單元測試都通過,也成功包成 jar 檔。如果這時想看過程的細節,點前面的那個綠色勾勾。

沒有留言:

張貼留言