Jekins+Gitlab+Nexus自動構建Project
1、安裝
我這裡將三個軟體全部安裝到了一臺伺服器上,安裝時注意埠衝突問題,參照以上文章的安裝和操作步驟即可
2、建立專案
類似github,在gitlab新建一個Java project,這裡以一個maven專案為例,gitclone到本地,寫幾個簡單的java程式碼,pom.xml檔案中新增幾個dependency等等,能用到nexus私服下載jar包,具體的說明還是檢視步驟1中的幾篇文章,這裡重點是Jenkins的自動構建,gitlab上建立的project,如圖:
3、伺服器安裝
Jenkins是由各種外掛組成的,外掛執行或者執行指令碼等也需要伺服器上安裝了相關軟體才行 1)由於我們需要自動構建一個maven專案,所以伺服器需要安裝maven,這裡注意配置setting.xml檔案,為了使用私服,將倉庫下載地址指向Nexus私服,同樣Jenkins需要maven外掛
yum install git-core
4、Jenkins新建一個專案
點選新建專案,如圖: 點選確定,如圖: 1)首先來看原始碼管理,我們需要配置從哪裡獲取原始碼,點選git,如圖:
- 這裡有個repository URL倉庫地址,進入gitlab的專案地址,有兩種形式,一種通過SSH,一種通過HTTP,如圖:
- 首先看HTTP形式的,如果填寫的地址連線不上會報錯,如圖:
點選Add按鈕,新增Credentials,如果是HTTP連線,一般型別選擇username with password,輸入使用者名稱、密碼、id即可,如圖:
- 再看SSH形式的,同樣,如果填寫的地址連線不上會報錯,這種方式之前的使用者名稱密碼形式已經不行了,如圖: 這裡需要生成祕鑰和私鑰檔案,在git中,執行:
git config --global user.name "xxx"
git config --global user.email "[email protected]" #後面是郵箱
ssh-keygen -t rsa -C "[email protected]" #後面是郵箱
注意執行ssh-keygen時,需要輸入密碼,一般直接回車,否則輸入密碼太麻煩,在使用者目錄下.ssh資料夾中找到公鑰和私鑰檔案:
5、gitlab webhooks
進入gitlab,點選專案的setting,選擇integrations,填寫jenkins構建觸發器顯示的webhook,並選擇觸發的時間,這裡選擇Push Events,如圖: 點選add webhook之後,如圖: 此時點選Test下拉框,選擇Push Events觸發,一般會發生403的錯誤,如圖: 解決這個問題,首先需要正確安裝了gitlab hook外掛,然後在系統管理 --> 系統設定 --> 取消勾選 Enable authentication for ‘/project’ end-point,儲存後再次點選測試,如圖: 此時檢視Jenkins,發現完成了一次構建,如圖: 雖然構建失敗,但是的確觸發了構建。說明webhook生效了
通過檢視構建的控制檯輸出,發現mvn的goal寫的有問題,應該去掉mvn,如圖: 修改後,點選立即構建測試,構建成功,如圖: 由於使用的maven的goal是deploy,去私服檢視,可以發現已經部署成功,如圖:
6、通過push程式碼測試生效
push程式碼,如圖: 觸發了一次新的構建,如圖: 測試成功
7、只監測某一分支的push events
此時在構建觸發器設定的位置,點選高階,配置如圖: 此test分支push程式碼,在gitlab上可以檢視是webhook是呼叫了的,但是未觸發構建,如圖: 此時master分支push程式碼,觸發了一次構建,如圖: 這裡就介紹完了,當然還要更多的細節,篇幅有限,需要在使用中慢慢發現他們的作用和使用注意事項,但是總體來說,等你用了幾次之後就會發現Jenkins很容易上手。