怎麼纔算是一個好的CI Server
前言
CI Server已經成爲軟件開發的標配,那什麼樣的CI Server纔算是一個好的CI Server呢?
筆者用過IBM RTC、Team City和Jenkins,也知道GitLab CI、Travis CI和Drone。
功能需求
一個好的CI Server應該能夠:
- 方便與多種代碼庫集成,代碼變更時可以自動觸發構建;
- 支持前後端多語言;
- Pipeline as Code,可以用代碼來定義流水線;
- 方便與代碼檢查工具集成;
- 方便與製品庫集成;
- 方便與自動化測試工具集成,方便查看測試報告;
- 方便與自動化部署工具集成;
- 方便準備構建環境和測試環境來進行集成測試;
- 方便與項目管理工具集成,構建結果能夠體現在項目管理工具中;
- 方便集成多種通知方式(比如郵件、IM通知和短信等)
質量需求
一個好的CI Server應該能夠:
-
高性能,資源開銷低,可以支持多個構建並行進行;
-
可靠性,構建結果可預測;
-
彈性,“隨用隨走”,根據需要調度資源,用完資源就釋放;
-
可維護性,節約維護成本;
直觀衡量標準
一個好的CI Server應該能夠:
- 不需要專人維護;
- 不需要每天登錄;
- 除了通知構建結果外,其它時間默默無聞。