系列文(二)
Pipelines CI/CD項目的設定會用到許多Build變數作為目錄路徑,以$(Build變數)表示,預設變數可參考官方文件。
1. 進入Pipelines的Build,按下右上角的Edit進入編輯。
2. Azure幫我們建立的CI項目,除了Get Souces取得專案之外,只有兩個動作:Archive files將特定目錄的檔案打包成壓縮檔,Publish Artifact將特定目錄的檔案發布到特定的目錄內,讓後續的release動作能夠取得檔案。
3. 由於Angular專案需要編譯成javascript,所以先加入npm install的操作,working folder空白表示在專案的root目錄
4. npm install後需要做build,因此再加入一個npm script,Command選custom,輸入package.json中定義的用來執行build的script
5. 做完build後,要將編譯後的檔案打包成壓縮檔,Root folder to archive指的是要打包的目錄,$(Build.Repository.LocalPath)指的是專案的根目錄,所以後面要加上angular.json中outputPath設定的路徑,圖中是dist/demo。$(Build.ArtifactStagingDirectory)指的是這次build過程中所使用的Artifact目錄。$(Build.BuildId)是這次build程序的ID。
6. 做完壓縮檔,要把檔案放到特定位置讓後續的release動作能取得檔案發佈到App Service站台上,因此需要做Publish Artifact這個動作。由於Releases那邊的CD項目已經有針對這個CI項目做好對應設定,所以這邊的設定一般不需要變更。按下上方的Save & Queue,會保存這些設定並做build。
7. 回到Builds主頁面,會看到多了一個build項目,藍色圈圈表示正在執行。這時候可以點commit連結。
8. 點上面的commit連結後,會進入這次build的詳細執行內容,萬一有錯誤的話可以從這邊來找問題。
9. build完成後,休息一下,來到Releases,會看到竟然多出了一個release項目!這表示Pipelines在我們不知道的時候偷偷做了一次release。
10. 這時候進入App Service的站台,會看到Angular app已經能夠正常執行了。
11. 至於為什麼會偷偷release,其實是因為Azure幫我們建立的CD項目中,預設Continuous deployment trigger設定是開啟,所以每次build之後都會自動release。
簡單的操作到這邊就完成了,其他的CI/CD執行操作以及像是trigger之類的設定,有機會再做紀錄。