持續集成Continuous Integration(CI)
原理圖:
Gitlab作為git server。Gitlab的功能和Github差不多,但是是開源的,可以用來搭建私有git server,也提供非常強大的web GUI,比如開發者互相review源代碼的時候就會很方便。系統的工作流程大概分為以下幾步:
1 開發者將新版本push到git server (Gitlab)。
2 Gitlab隨后觸發jenkins master結點進行一次build。(通過web hook或者定時檢測)
3 jenkins master結點將這個build任務分配給若干個注冊的slave結點中的一個,這個slave結點根據一個事先設置好的腳本進行build。這個腳本可以做的事情很多,比如編譯,測試,生成測試報告等等。這些原本需要手動完成的任務都可以交給jenkins來做。
4 我們在build中要進行編譯,這里使用了分布式編譯器distcc來加快編譯速度。
jenkins的工作原理是先將源代碼從gitlab中拷貝一份到本地,然后根據設置的腳本進行build。我們可以看出,整個系統的關鍵就是那個build腳本,用來告訴jenkins在一次集成中需要執行的任務。
不過我之后是用的Github作為git server。但其實差不多。
也有公司是用SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統