Visual Studio Online構建自動化新特性

cbgd 9年前發布 | 10K 次閱讀 Visual Studio

 英文原文:New Build Automation Features in Visual Studio Online

微軟完全重寫了 Team Foundation Server 和 Visual Studio Online 的構建服務器,新工具不再使用大量基于 XAML 的 Windows 工作流文件作為構建定義。

這次重寫主要解決以下問題:

  • 如果不學習工作流基礎知識,則無法添加構建后自定義腳本
  • 構建服務器不支持非 Windows 平臺,不能用來構建 iOS app
  • 要想構建 Java 程序,必須學習 MSBuild 和另外一項技術
  • 只有最新版 Visual Studio 才能編輯構建模板
  • 大量惱人的 XAML。新的構建定義不再使用含有大量 XAML 的 Windows 工作流文件。
  • 不能通過 Web 頁面或在非 Windows 機器上編輯構建定義
  • </ul>

    為了解決這些問題,微軟的新構建服務器遵循了這些關鍵原則:

    • 不再創造一個新的構建/自動化領域特定語言。如果你正在使用 MSBuild、Ant 這些構建工具,那么你可以繼續使用他們。
    • 支持非 Windows 平臺。
    • 構建系統必須具有良好的擴展性。
    • 不應該隱藏日志記錄
    • </ul>

      Visual Studio Online 中的新特性

      可以直接在瀏覽器中創建并修改構建定義,從此不需再為調整構建文件而打開沉重的 Visual Studio。

      構建定義經常需要訪問不想告知他人的機密內容,例如產品密鑰、安全 token,現在你可以在構建定義中使用加密變量保護這些機密。

      構建定義不再被直接定義為一個分支。你創建定義后,可以使用構建定義標記將被構建的分支,每一個分支可以擁有它們自己的觸發器(CI,daily 等)。

      當使用諸如 git-flow 的工作流時,最終你往往會創建一堆特性分支。在這個新模型下,你可以在構建定義中使用通配符。舉個例子,你可以定義:任一匹配“feature-*”的分支將自動被編譯并運行測試,而“qa-*”分支只進行每日構建。

      構建工具可以直接運行 PowerShell 腳本。這對 Azure 來說尤其重要,Azure 的部署大部分由 PS 文件來處理。構建過程能夠檢查你的 Azure 訂閱帳號,確保部署程序運行在正確的上下文中就變得更容易了。

      一旦部署了一個網站,構建自動化可以啟動一個“快速性能測試”,亦即基于 Visual Studio/TFS 中的負載測試功能,運行一個初步的冒煙測試來確保部署成功。

      跨平臺和測試

      除了在 OS X 上構建之外,現在可以在 OS X 上的構建自動化中集成測試程序,生成一個 JUnit 格式的測試結果,繼而被導回到構建服務器中并顯示。

      構建自動化也支持 Xamarin 測試云,你可以選擇一些測試細節,例如:從 Visual Studio Online 直接選擇你感興趣的設備/操作系統。

      VSO 支持多種單元測試框架。

      跨平臺構建代理基于 Node.js 和 xplat。

      可擴展性

      以環境變量的方式暴露關鍵信息,例如:構建版本號。任何腳本語言都可以讀取環境變量獲得這些信息。

      當新版本構建工具發布的時候,構建代理可以自動升級。

      開源所有開箱即用的任務,尚未決定是否允許第三方為 OOB 貢獻代碼。

      在 Windows 平臺用 PowerShell 編寫任務,在其它平臺上用 xplat 和 JavaScript 編寫。

      體系結構

      新的構建服務器依然支持基于 XAML 的構建定義。

      構建代理移除了一大敗筆——單一的物理控制器。

      代理被分為許多池,每個池被配以集合并受到池級保護。消除了管理個別構建代理的必要性。

      安全性

      目前的構建代理運行在一個共享進程中。這意味著一旦構建失敗將影響到整個構建代理,甚至一個打開的文件句柄都會讓整個過程終止。

      在新構建代理模型中,每個構建運行在自己的進程下。當一個構建完成時,進程被完全銷毀,并創建一個新的進程來執行下一個構建。

      在大多數構建系統中都有一個相對未知的安全黑洞——“單元測試后門”。開發者可以通過寫單元測試來捕獲敏感信息,然后用于獲取嚴格保密的信息。為了幫助開發者減輕這方面的風險,構建代理綁定了一個時間限制 token,一旦構建完成立即失效。

      想了解更多有關構建自動化新特性的信息,歡迎查看 Channel 9 的現場演講《Team Foundation Server 和 Visual Sdudio Online 中的新一代構建自動化》。

      來自: InfoQ
       本文由用戶 cbgd 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
       轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
       本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!