2020年2月9日 星期日

[ Azure CI / CD ] 2. CI 流程加入 confing 組態控制與發行封裝檔產生

以往使用手動更新發佈時,我們要依據不同站台使用不同設定發佈網站,所以這邊要跟大家說如何透過 CI 流程使用不同 web.config 產生不同發行成品。

1. 設定 Paralleism 模式


選擇 Agent Job


設定 Paralleism 為 Multi-configuration,Multipliers 為 BuildConfiguration



2. 新增 Pipeline 變數


新增選擇 Pipeline,並新增變數 BuildConfiguration


請注意這邊變數的值需要與專案中的方案組態名稱對應,若有多個組態則使用 "," 隔開。

3. 設定 Visual Studio build


將剛剛 Pipeline 新增的變數加入 Visual Studio build 



將 MBuild Arguments 中的 publishprofile 名稱加入 $(BuildConfiguration) 變數,到時候執行時變數將會替換成對應的數值,若有多個組態,則必須產生多個發佈檔 (.pubxml)。

發佈檔產生方式請參考:

[ Azure CI / CD ] 1. 透過 Team foundation version control 完成持續整合 ( Continuous integration )


4. 設定 Copy Files 來源與目標目錄




將 Source Folder 路徑調整為對應型態變數 $(BuildConfiguration) ,這裡產生的路徑也必須與發佈檔相同,Target Folder 路徑也調整為對應型態變數 $(BuildConfiguration) 。

5. 執行 Pipline 程序 


執行 Pipeline 後就可以看到原本只執行一次的設定將會依據不同的組態設定執行封裝







2020年2月4日 星期二

[ Azure CI / CD ] 1. 透過 Team foundation version control 完成持續整合 ( Continuous integration )


臨時被指被研究 CI / CD,參考了 【CI/CD】1. 如何透過VSTS來達成CI的目標 之後,所以有了這篇文章。

1. 建立 devops 專案,並選擇版本控制工具


請至 Azure Devops 建立專案 https://azure.microsoft.com/zh-tw/services/devops/ 

版本控制工具有很多種,我比較熟悉 TFVC 如果你們要選擇 Git 也是有的。

2. 建立 Pipeline 並選擇程式碼存放位置


因為建立專案時我們選擇 TFVC,所以這邊一樣選擇 TFVC

3. 選擇 持續整合 ( CI ) 流程範本


建立 CI 流程步驟,這邊選擇 Empty job


4. 加入 Nuget 


還原 Nuget 套件



5. 新增發行設定檔 ( web deploy Profile )



發佈檔案建立時選擇 " IIS、FTP 等 " 選項,並設定封裝位置於專案目錄下的 publish。

6. 加入 Visual Studio bulid 


該步驟會依據設定將程式碼編譯為可發佈之檔案。


MsBulid Arguments 中的 publishprofile 請設定為上一步驟中的發行檔案名稱 (不須副檔名),並將 Configuration 設定為 debug 組態模式,這樣產生的發佈檔案將會套用 debug 的設定。

7. 加入 Copy Files 


該步驟會將 Source Folder 位置的檔案複製到 Target Folder 。



Source Folder 必須要跟步驟 3 的封裝位置相同,Target Folder 則為要複製的目的地資料夾。

8. 加入 Publish bulid artifacts


這裡是將步驟 6 產生之檔案發佈至 Pipelines 共享資料夾上



9. 執行 Pipline 程序


按下 Save & Run 開始執行專案整合,執行完若所有任務皆顯示綠燈,代表執行成功。



10. 簽入程式碼自動觸發 Pipline 工作項目


啟用 Enable continuous integration 這樣在簽入程式碼之後就會自動觸發 Pipline 開始執行工作。