CI 工具大亂鬥

三十天也快結束了,大家對 CI 已經有更深的了解了。今天開始會講 CI 工具,有了概念後再開始實作,相信會做得更有樣子。

CI server 主要的目的是隨時待命,只要程式碼有新的提交,它就會開始忙著測東測西,最後會跟你說本次提交是成功還是失敗。歷史記錄是必要的,報表和 Artifacts 通常也都會幫你收集起來備存。

CI server 實作

目前常見的 CI server 實作如下:

未來幾天會講的實作與比較如下:

比較 Dapper Travis CI Circle CI GitLab CI Pipelines
服務類型 Local SaaS SaaS SaaS / On-premise SaaS
價格 Free Free / Enterprise Free / Pricing Free / On-premise Free / Pricing
支援私有專案 N/A Yes (Enterprise) Yes Yes Yes
支援的版控系統 N/A GitHub GitHub / Bitbucket GitLab Bitbucket
測試執行環境 Build Immediately Ubuntu 12.04 / 14.04 Ubuntu 12.04 / 14.04 Docker / On-premise Docker
設定檔格式 Dockerfile + script .travis.yml circle.yml .gitlab-ci.yml bitbucket-pipelines.yml
支援 Docker N/A 支援 支援 使用 DinD
特殊技能 Local 執行 多組環境定義與測試 Artifacts 代管 彈性的 Pipeline 定義 支援 Mercurial

選擇講這幾家,主要當然是因為比較熟。另一個原因是,它們都有一些免費的方案可以選擇,而且可以快速跟常見的版控串接,並立即看到結果。


今日回顧

今天稍微休息一下,明天開始將會介紹如何使用這些工具。