1

目前,我們的開發人員都使用配有特定軟件的VirtualBox虛擬機的克隆,我們想要將持續集成引入我們的開發堆棧。是否可以在Jenkins開始的流浪盒中運行測試套件?

我們正在考慮使用詹金斯,最好我們希望將其配置爲執行以下操作:

  1. 克隆,我們都使用發展(因爲它得到經常更新)基本VM
  2. 啓動這個VM
  3. 複製實例/下載一個腳本到該實例
  4. 執行腳本,這將安裝我們的開發環境和運行測試
  5. 收集這些測試結果
  6. 在測試是否成功的報告或不

我敢肯定,我們可以得到1-4的工作,它的步驟5和6我們關心的。

這是可以實現的嗎?如果是這樣,怎麼樣?

回答

1

這當然有可能,我們有一個非常類似的設置。

收集結果

爲了收集這些測試結果,你可以採取的Vagrant's synced folders優勢,即運行在虛擬機上測試,其中同步到你的主機目錄(其中詹金斯在這個運行案件)。

報告測試是否成功與否

正如我敢肯定,你知道詹金斯過程只需要以不退出非零。我們設置測試的方式如下:

vagrant ssh -c 'cd /synced-folder/ && grunt test-report --force && npm test' 

首先,我們使用Grunt收集結果。我們只生成了xunit XML報告(然後我們將其作爲後期製作操作發佈)。請注意,我們--force這樣,即使我們有失敗的測試,我們也會收集結果。然後我們使用npm test運行測試。 npm test進程的退出代碼將用於Jenkins作業,因此如果失敗,那麼Jenkins作業將會失敗。

0

有一堆詹金斯插件正是爲了處理這種情況而設計的。特別是,詹金斯有一個從屬執行者的基本概念,處理複製文件,遠程觸發和收集結果給你(這實際上是詹金斯的核心功能 - 處理運行大型管理開銷許多機器上的計劃任務數量)。除了啓動slave機器(在你的場景中配備Vagrant)並且告訴Jenkins你的構建應該在特定的slave上運行之外,你並不需要做任何事情。

這裏的相關條目指向文檔:

https://wiki.jenkins-ci.org/display/JENKINS/Distributed+builds

相關問題