我們大部分程式員都是隻想安安靜靜的寫代碼,但是總是繞不過去的一個問題就是打包和釋出。
我們團隊的流程是這樣子的
- vs編寫代碼
- gitlab merge request
- 稽核合并
- jenkins打包釋出
然而我們還是會常常遇到一些問題,比如打包不過呀,低級bug呀等等各種問題
然後revert,hotfix
那麼問題來了,我們程式員有限的生命這麼寶貴,為什麼要浪費在這些問題上。
CI
ci持續內建,參加持續內建 - 維基百科,自由的百科全書
其實我們這邊有做持續內建,比如定期build,定期converity
但是我們可以做的更多一些
Jenkins+Gitlab
實操一下jenkins+gitlab做ci
- 我們在jenkins上建立一個工程,這個工程可以做build或者test或者publish

- 添加源碼管理,對我們項目來說是gitlab
3. 設定觸發器,這個是最有用的地方,可以決定我們在什麼時機去運作這個jenkins工程
- merge request觸發
-
webhook觸發
這個是一個比較簡單的方式,可以實作對gitlab本身觸發器的內建。
這裡我們選擇push events
回到gitlab項目,在settings-intergrations 将剛剛jenkins中的webhook的URL粘貼過來,然後選擇觸發事件。 例如我期望每次添加一個tag的時候跑一邊釋出,那麼就勾選
Tag push events
建立的webhook會在下面列出了,我們可以點選右側的test發送一個測試的
Tag push events
我們可以看到jenkins跑了一次建構,裡面還顯示了相應的資訊
What can we do
- merge request自動跑單元測試
- 合并後跑build
- 添加tag後釋出
- ……
限制的隻是想象力
本文會經常更新,請閱讀個人部落格原文: https://xinyuehtx.github.io/ ,以避免陳舊錯誤知識的誤導,同時有更好的閱讀體驗。
本作品采用 知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協定 進行許可。歡迎轉載、使用、重新釋出,但務必保留文章署名黃騰霄(包含連結: https://xinyuehtx.github.io/ ),不得用于商業目的,基于本文修改後的作品務必以相同的許可釋出。如有任何疑問,請 與我聯系 。