一千萬個為什麽

搜索

使用Jenkins Pipeline進行.NET項目的持續集成



該項目: .NET獨立應用程序包含:

  • 包含用於Web界面的Web服務器的Windows服務的主要應用程序。項目是90%.NET(框架,標準和核心)以及一些C ++庫
  • 將自然部署在Windows計算機上的Windows代理
  • 將部署在Linux機器上的ASP.NET Core Agents
  • WIX用於打包和創建安裝程序

我們沒有一個專業且富有經驗的Devops團隊成員,但是我們目前在VSTS中已經有一種CI/CD管道。沒有什麽奇特的東西,只是一堆構建定義為每次提交運行單元測試,而夜間整合和Selenium測試分裂為多個虛擬機之間的多個構建(由於為了減少運行時間,在裝配級進行MSTest並行化),以及另一個手動開始創建安裝程序。

在不久的將來,我們可能需要切換到詹金斯,花了一些時間搞亂了構建,我開始非常喜歡Pipeline插件(尤其是藍色的插件)。另一方面,我發現如果你不是在Java世界開發的,那麽即使是.NET所需的最基本的工具,如MSBuild和MSTest或VSTest,也缺乏管道支持。

為了能夠運行測試並顯示結果,我們必須執行一系列步驟,主要包括批處理腳本,並添加額外的工具來構建,執行dotnet恢復,nuget恢復,運行測試,將< code> .trx 文件轉換為JUnit支持的文件,以便能夠顯示它們。

考慮到以上所有信息,我虛心詢問以下內容:

  1. 現有構建系統的“升級”應該如何?
  2. 是否有任何埋藏的資源/指南/起點可以讓我們更容易地使用.NET世界中的Pipeline?
  3. 我可能缺少的其他東西?

轉載註明原文: 使用Jenkins Pipeline進行.NET項目的持續集成

一共有 1 個回答:

具體來說,在回答你的問題時,如果你願意看到詹金斯生態系統以外的地方,那裏有替代品可能對你有價值。

對於使用Microsoft Stack並且擁有少於四個團隊的客戶,我一直建議使用 AppVeyor 它非常適合.NET堆棧,並且非常自然地與 msbuild 和Wix集成。

AppVeyor

有兩種配置AppVeyor的方法,可以通過基於Web的用戶界面或通過 appveyor.yml 文件檢入git存儲庫的根目錄。我強烈建議後者,歡迎您從此模板開始:

version: 3.0.{build}

build:
  parallel: true
  project: EVEMon.sln

cache:
  - packages -> **\packages.config

install:
  - nuget restore

AppVeyor及其堂兄弟的主要缺點 TravisCI是否使用內部部署的源代碼管理解決方案打得不太好,你確實需要使用GitHub或BitBucket。