現已釋出!閱讀關於 11 月新增功能和修復的內容。

Visual Studio Code 使用 Azure Pipelines

2018 年 9 月 12 日 João Moreno, @joaomoreno

作為 Visual Studio Code 團隊的開發人員,我的職責之一是維護和改進我們的構建和持續整合 (CI) 基礎設施。鑑於 Azure Pipelines 最近釋出的功能,Visual Studio Code 團隊極大地改變了我們利用 Microsoft 技術的方式,為我們的開發人員和使用者提供了更好的協作平臺。在這篇部落格文章中,我將引導您回顧 Visual Studio Code 的一些歷史,重點介紹我們的 CI 流程和工具,以及它們是如何隨時間演變的。

Visual Studio Code 工程

像任何其他開源專案一樣,我們需要擁有合適的工具和能力來接收、分類和處理儘可能多的程式碼貢獻。在開發人員工具領域尤其如此,因為使用者本身就是開發人員:他們是一個充滿熱情、勤奮且非常高效的群體。截至這篇部落格文章發表時,我們有 148 個未解決的 PR 和 3,482 個已關閉的 PR,鑑於該專案至今已有 3 年的生命週期,平均每天大約有 3 個 PR。我們必須為處理如此規模的貢獻做好充分準備,這不僅是為了保持專案開發的健康,也是為了幫助其他開源專案提供如何以這種規模運作的範例。我們實現這一目標的部分方法是透過將 PR 體驗帶入編輯器來簡化我們的工作流程,但 CI 是處理大規模貢獻的另一個重要部分。

直到最近,我們還依賴於開源社群對公共持續整合的預設選擇:用於 Linux 和 macOS 構建的 Travis CI 和用於 Windows 構建的 AppVeyor。此外,我們還使用 Coveralls 來提供詳細的測試覆蓋率報告。這些服務為我們公共儲存庫上的 PR 和程式碼分支提供質量報告,因為它們自動化了 編譯,執行 程式碼衛生檢查執行多個測試 套件,所有這些對於在具有大量傳入貢獻的分散式團隊中保持質量至關重要。這種服務組合需要理解和維護至少 3 個不同的系統,每個系統都有自己特殊的檔案格式、語法、怪癖、限制等。

採用 Azure Pipelines

今年早些時候,Azure Pipelines(當時名為 Visual Studio Team Services)團隊與我們聯絡,試用一些新東西。這一公告標誌著我們轉向更精簡的持續整合解決方案。我們的構建現在在所有平臺上同時執行,快來看看吧

VSCode Project Build Page

為了實現這一轉變,需要做很多很酷的事情。讓我們分解一下:

  1. Azure Pipelines 對公共專案的支援 使我們能夠執行一個 面向公眾的 Visual Studio Code 專案,其中執行著我們所有的持續整合構建;
  2. Azure Pipelines 中的 構建代理 長期以來一直支援 Windows、macOS 和 Linux 平臺矩陣;
  3. Azure Pipelines 中執行 macOS、Linux 和 Windows 的 Microsoft 託管代理 提供了一個出色的軟體堆疊來構建專案,而無需擔心構建機器維護;
  4. YAML CI 允許建立與專案原始檔保持緊密聯絡的 YAML 定義(Visual Studio Code 為此提供了 出色的擴充套件)。

將所有這些結合在一起,我們終於能夠專注於一個單一的 CI 解決方案。 Azure Pipelines 上的 Visual Studio Code 構建 在單個構建中執行我們的編譯、衛生檢查和測試套件,自動將構建分佈到不同的平臺上。由於我們使用的是 Microsoft 託管的構建代理,我們無需擔心維護這些機器。

第三方整合

Azure Pipelines 還提供了 GitHub 整合,為我們的 GitHub 專案頁面(即拉取請求)提供了構建結果指示器。

Pull Request Integration

我們還構建了一個聊天機器人,它連線到 Azure Pipeline 的 REST API,並在構建中斷時向我們的內部聊天提供通知。

Chat Bot Automation

未來展望

我的下一個任務是利用 程式碼覆蓋率報告,以便獲得比以前的工具組合更好的端到端 CI 流程。

轉向 Azure Pipelines 對我們來說是一個巨大的成功。由於構建不再分散各地,現在更容易推斷整體程式碼質量。我們還鞏固了 構建定義檔案 的數量和格式。我們對這一變化非常滿意,並對 Azure Pipelines 的未來感到興奮。


如果您想了解有關公共專案和 Azure Pipelines 的更多資訊,請檢視他們的 部落格文章

您想試用 Visual Studio Code 嗎? 立即為您的首選平臺下載。如果您像我們一樣,總是想執行最新最好的版本,那麼 獲取我們每日構建的 Insider 版本。您只是想聯絡或保持聯絡嗎?在 Twitter 上關注我們 @code

代表 VS Code 團隊:祝您編碼愉快!

João Moreno, @joaomoreno

© . This site is unofficial and not affiliated with Microsoft.