一、實驗環境圖
二、實驗流程
1、git本地更新代碼后提交到git服務器。
2、git服務器接收到代碼提交后,觸發jenkins鈎子函數。
3、jenkins接收到鈎子函數后進行job構建。
三、實驗步驟
1、gitlab服務器上創建一個倉庫。
2、客戶端從git服務器拉取倉庫並進行代碼更新。
克隆倉庫
把文件更新到本地倉庫中。
把本地倉庫push到gitlab倉庫。
此時能看到gitlab的倉庫http_code上有相應的代碼文件。
3、jenkins創建項目構建。
1)源碼管理配置,用來配置從gitlab倉庫里拉取代碼。
其中Repository URL為倉庫的ssh地址。
Credentials:憑據,由於是本次連接到gitlab用的是ssh方式,因此需要用到ssh憑據,圖二是ssh憑據的配置,其中Passphrase為ssh密碼。
注意:gitlab需要配置遠程服務器的ssh-key才能允許到gitlab上拉取代碼
步驟:點擊個人頭像->點擊左側有個ssh keys 然后添加遠程服務器的公鑰即可。
2)配置觸發構建函數。
構建觸發器配置:
常用有兩種:
1)第一種:觸發url訪問構建,如圖,如果訪問http://192.168.174.129:8080/job/test/build?token=git即可觸發構建,只要保證token的值和輸入框的值一致就可。
2)第二種:安裝插件gitlab,在gitlab有提交動作后,即可自動觸發任務。
第一步:在jenkins配置如下信息,記住url和id
第二步:在gitlab上配置webhooks:
點擊http_code倉庫的左側的點擊,然后選擇webhooks,然后鍵入上文的url以及id,點擊add webhook即可。
注意:新版的gitlab可能應用添加了安全機制,無法直接配置webhook,需要做以下的配置:
3、配置構建函數。
這里我只是把拉下來的index.html文件移動到nginx目錄下。
並且在構建環境中勾選Delete workspace before build starts,用來在更新時候清理原來的文件,需確認是否需要備份。
四、測試結果
點擊項目立即構建。
然后訪問192.168.174.129
此時我git本地客戶端修改index.html后,push到遠程倉庫,看看是否自動化完成替換。
此時發現,jenkins確實能自動構建job,網頁也能自動修改。