CI Pipeline的YAML搞定之後,別忘了接續它動作的是CD Release Pipeline,之前在基本版-建立CD Release Pipeline這篇文章建立了CD Pipeline,但是那時候還沒有設計YAML範本,並且GCP的Json檔案和Dockerfile檔案都還沒有搬移到新的templates Git Repo,這兩個檔案在之後已經搬家了,所以自然就需要調整更新一下CD Pipeline囉!
為了之後建立多個Azure DevOps方便,所以調整完後也需要將它匯出成Json檔案當作後續建立的範本來匯入,這樣大部份的項目就會先建立好,我們只需要針對一些地方進行調整修改就可以了。
首先,先來調整原本的CD Pipeline,先增加templates的Repo來源,這部份在後續新的Azure DevOps專案應該不會更動,別名就使用PipelineTemplates吧!

接著我們需要修改Stage和Production的Agent job,要新增一個Bash task,就是針對環境變數檔案內容合併的部份,Script裡面的內容參照先前CI Pipeline寫的內容,只是路徑和變數需要調整一下,可以對照下圖的Script和YAML內的差異。

改完之後還需要調整一下Deploy CloudRun的Script,圖中的PipelineRepo和PipelineTemplates都是對應上面第一張圖所設的別名,應該沒忘吧?

Production的部份也是一樣新增Bash把合併環境變數檔案的Script加進去,可以直接複製Stage內的Script。同時也別忘了要修改Deploy CloudRun的Script。
Stage跟Production的Script都調整好了之後,就來到Variables頁籤來新增使用到的變數。這邊跟之前比較不一樣的地方在於綠框的內容,因為我們已經學習到了更多的東西,所以可以調整一下一些變數的設計,這樣之後在新的Azure DevOps專案匯入CD Pipeline的時候才不會有漏改的地方。(參考多專案命名規則與變數範本這篇文章)

都改完存檔之後,就可以回到外面一層,在CD Pipeline的部份叫出選單,把它匯出(Export)為Json檔案保存下來,之後在新建立Azure DevOps專案的時候方便匯入。


上圖就是匯入的選項位置,新專案可能因為沒有任何一個Release Pipeline而找不到這個選項,只要隨便建立一個空的Release Pipeline再來找這個匯入的功能就可以了。(建立的空Release Pipeline再刪掉就好)

選擇前面匯出的Json檔案按下Ok就會匯入成為一個新的CD Release Pipeline了。
匯入成為新的CD Release Pipeline之後,根據先前在基本版-建立CD Release Pipeline這篇文章建立的步驟檢查一下各項設定與變數內容(記得更改專案名稱),然後有兩個地方特別要留意一下,第一個就是除了PipelineTemplates那個Artifacts來源之外,其它的都要刪掉重新加,因為專案不同。第二個就是在Production的Create Pull Request的部份要針對新的專案重新選擇,不然Git commit SHA會對不起來,無法建立PR也無法合併。
