簡體   English   中英

與GitHub持續集成

[英]Continuous integration with GitHub

當前,我們正在使用TFS作為源控件。 我們已經配置了與TFS的持續集成及其正常運行。 但是現在我們決定將我們的項目移至GitHub。

它的ASP.NET MVC項目,我們已經有了Msbuild的proj文件,該文件可以構建項目並創建輸出。 現在,當有人將代碼推送到遠程存儲庫時,我們需要以某種方式自動運行proj文件。 我不用擔心部署代碼。

我看到GitHub有2個選項:

  • Webhooks:我想我們必須創建自己的服務來接受“ POST”請求,然后將該服務托管在我們自己的構建服務器上。 該服務將負責將最新代碼拉入構建服務器上的本地存儲庫並執行proj文件。

  • GitHub上可用的集成工具很少,但我不確定哪個可以與MSBUILD一起使用。 關於集成工具,特別是針對ASP.NET MVC項目的任何建議? https://github.com/integrations/feature/build

關於這兩種方法有什么建議嗎?

TFS構建

如果您使用的是TFS Build 2015 ,只需單擊幾下即可

  1. 為您的構建服務器創建一個GitHub帳戶
  2. 生成此帳戶的個人訪問令牌(並定義權限)
  3. 創建新的構建定義(使用GitHub選項)

如果您不打算使用TFS Build,但要選擇其他構建服務器,則市場上有很多選擇。

雲解決方案

例如,您可以選擇AppVeyor 這是一種雲CI服務,已與GitHub進行了現成的集成,可以輕松構建.NET解決方案。 它使用WebHooks觸發構建過程。

內部構建服務器

假設您要擁有自己的CI服務器。 作為.NET的解決方案,我可以推薦TeamCity ,但您也可以使用Jenkins。 兩者都與GitHub集成,並且都可以構建.NET代碼。

我對TC更加熟悉,所以我將解釋如何配置它。

TeamCity Pro 對於小型團隊是免費的

您可以在此處找到分步示例。 它有點過時了(該文章寫於2013年),但這仍然是一個不錯的教程。

  1. 您需要一個用於構建服務器的帳戶(與TFS Build相同)。
  2. 配置VCS根目錄以使用您的GitHub存儲庫。
  3. 設置分支規范。 最常見的是+:refs/heads/*可以。
  4. 定義構建步驟。 為其提供.sln文件的路徑。
  5. 如果需要,定義其他步驟(單元測試,發布程序包,通知)
  6. 設置構建觸發器(TC可以輪詢GitHub進行更改,或者可以偵聽WebHook)。 當TC位於防火牆后時,第一種選擇是好的。

Jenkins的步驟將稍有不同 ,但也不太復雜。

Web掛鈎vs投票

TC的最小輪詢間隔為一分鍾。 如果您同意等待,或者您的TC實例未對公眾開放(安裝在防火牆后面),請使用此選項觸發構建。

如果您希望幾乎立即構建並且構建服務器具有公共訪問權限,則可以使用WebHook選項。 當有人按下代碼或標簽時,GitHub會通知您的CI服務器。

AppVeyor是GitHub上越來越受歡迎的CI。

例如,查看該項目如何定義appveyor.yml文件來配置CI。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM