最新內容已更新至 Blog: 使用 Jenkins/Azure Pipeline 進行持續整合
Eric
: 前面花了很長的時間,說明 Jenkins 設定與支援 GitHub、BitBucket、Azure DevOps 等 Git Repository。接下來,來聊聊 Azure DevOps 當中的 PipeLines。
吉米
: PipeLines?
Eric
: Microsoft 將,原本 VSTS 當中,所有與 CI/CD 相關功能,統整於 Azure PipeLines。
吉米
: 了解。
Eric
: 我們先來聊聊 Azure PipeLines 對自家產品 Azure Repositories 的支援與設定。
選取 Pipelines 的 Builds 後,會看到工作清單。但因為目前沒有任何資料,所以直接進入建立 pipeline 的容量。
選擇 Azure Repository 後,如果該 Repository 內有資料,會列出 Repository 清單。
如果選取的 Repository 內己經有資料,Azure Pipeline 會自動分析,並建立 yml
我們來看一下,Azure pipelines 自動建立出來的 yml 內容。
pool:
vmImage: 'VS2017-Win2016'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@0
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
- task: VSBuild@1
inputs:
solution: '$(solution)'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: VSTest@2
inputs:
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
azure-pipelines.yml
的內容,其實還滿容易理解的。
pool
所使用的測試環境varibale
宣告 task
內的所使用的變數steps
真正進行動作用的地方,在 azure pipeline 內,將各個動作都視為 task
。Azure pipeline 動作時, 會依序執行 task,只要其中一個 task 失敗,就會直接中斷動作。並回報結果為失敗。
當 Repository 的程式碼有異動時,Azure Pipeline 就會依剛剛 azure-pipelines.yml
的指示,進行動作。
下面的圖為 Azure Pipelines 執行中的畫面。
Eric
: 接下來,我們來聊聊 YAML 這個標註語言。