天天看點

使用jenkins+gitlab進行CI

我們大部分程式員都是隻想安安靜靜的寫代碼,但是總是繞不過去的一個問題就是打包和釋出。

我們團隊的流程是這樣子的

  • vs編寫代碼
  • gitlab merge request
  • 稽核合并
  • jenkins打包釋出

然而我們還是會常常遇到一些問題,比如打包不過呀,低級bug呀等等各種問題

然後revert,hotfix

那麼問題來了,我們程式員有限的生命這麼寶貴,為什麼要浪費在這些問題上。

CI

ci持續內建,參加持續內建 - 維基百科,自由的百科全書

其實我們這邊有做持續內建,比如定期build,定期converity

但是我們可以做的更多一些

Jenkins+Gitlab

實操一下jenkins+gitlab做ci

  1. 我們在jenkins上建立一個工程,這個工程可以做build或者test或者publish
使用jenkins+gitlab進行CI
  1. 添加源碼管理,對我們項目來說是gitlab
使用jenkins+gitlab進行CI

3. 設定觸發器,這個是最有用的地方,可以決定我們在什麼時機去運作這個jenkins工程

使用jenkins+gitlab進行CI
  • merge request觸發
使用jenkins+gitlab進行CI
  • webhook觸發

    這個是一個比較簡單的方式,可以實作對gitlab本身觸發器的內建。

    這裡我們選擇push events

使用jenkins+gitlab進行CI

回到gitlab項目,在settings-intergrations 将剛剛jenkins中的webhook的URL粘貼過來,然後選擇觸發事件。 例如我期望每次添加一個tag的時候跑一邊釋出,那麼就勾選

Tag push events

使用jenkins+gitlab進行CI

建立的webhook會在下面列出了,我們可以點選右側的test發送一個測試的

Tag push events

使用jenkins+gitlab進行CI

我們可以看到jenkins跑了一次建構,裡面還顯示了相應的資訊

使用jenkins+gitlab進行CI

What can we do

  • merge request自動跑單元測試
  • 合并後跑build
  • 添加tag後釋出
  • ……

限制的隻是想象力

本文會經常更新,請閱讀個人部落格原文: https://xinyuehtx.github.io/ ,以避免陳舊錯誤知識的誤導,同時有更好的閱讀體驗。

使用jenkins+gitlab進行CI

本作品采用 知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協定 進行許可。歡迎轉載、使用、重新釋出,但務必保留文章署名黃騰霄(包含連結: https://xinyuehtx.github.io/ ),不得用于商業目的,基于本文修改後的作品務必以相同的許可釋出。如有任何疑問,請 與我聯系 。

繼續閱讀