【原創(chuàng)】轉(zhuǎn)載請標(biāo)注文章地址
Jenkins上集成GitLab,當(dāng)有人push code到GitLab上時蝴罪,GitLab會觸發(fā)Jenkins進(jìn)行相應(yīng)Job的構(gòu)建董济。
1、在Jenkins上安裝好GitLab Plugin和Gitlab Hook Plugin
2要门、在gitLab上加上ssh public key
在裝Jenkins的機(jī)器上感局,用jenkins用戶或者root用戶生成ssh密鑰對。如果jenkins是分master和slave的暂衡,那就在master上生成密鑰對询微,如果jenkins是運行在docker里的,那就在docker里的jenkins master上生成密鑰對狂巢。
生成密鑰對:ssh-keygen -t rsa (記得先切換到相用戶下root or jenkins撑毛,具體操作百度or Google很多),生成的密鑰對在對用用戶下的.ssh文件夾下唧领,比如root用戶藻雌,路徑就是/root/.ssh
然后將文件id_rsa.pub里面的內(nèi)容copy到gitLab上, gitLab-->setting-->SSH Keys
3、Jenkins上的配置
3.1 添加credentials
找到Source Code Management, 點擊Add按鈕去添加一個credentials
只要填三個內(nèi)容斩个,
- Kind選擇 SSH Username with private key
- Username自己隨意填
- Private Key填步驟2中生成的私鑰(文件id_rsa里的內(nèi)容)
3.2 配置Job觸發(fā)
在Job里的configuration里面胯杭,勾選Build when a change is pushed to GitLab. GitLab CI Service URL: http://147.128.64.212:8080/project/TEST_RC13_AA_TRIGGER,具體里面的配置都采用默認(rèn)的受啥,后面按需修改做个。
4、在GitLab添加Webhood
步驟3中滚局,紅框框起來的url地址copy出來居暖,然后Paste到GitLab上的對應(yīng)項目上,GitLab-->project-->NSI-Ansible-->Settings-->Integrations
把url復(fù)制到GitLab上藤肢,然后點擊Add webhook按鈕太闺。生成webhook后點擊test可以測試,返回Hook executed successfully: HTTP 200就表示成功了嘁圈,同時Jenkins job也會build起來省骂。
如果是這樣基本完成了蟀淮,但test的時候有可能返回的是Hook executed successfully but returned HTTP 403,這是沒有權(quán)限钞澳,需要把Jenkins-->Jenkins Manages-->Configure System灭贷,找到GitLab配置,去掉勾選略贮。
5、配置branch
這樣子仗岖,只有有人push code到GitLab上逃延,我Jenkins的job都會Run,但這有一個問題轧拄,這里沒能區(qū)分Branch揽祥,無論提交到哪個branch的code都會觸發(fā)Jenkins Job,這肯定不是我們希望的檩电,所以還需要在Jenkins上配置拄丰。Jenkins-->Job-->configure-->Build Triggers,然后點擊圖中的紅框俐末,配置更多選項料按。
然后在Allowed branches中,選擇filter branches by name卓箫,在include中填寫你要的branch名稱载矿,這樣就可以按branch觸發(fā)。當(dāng)然還能看到可以用正則來匹配branch烹卒,按需求來就好闷盔。
6、提高點
插件是沒有提供按文件路徑來觸發(fā)的功能的旅急,比如一個大project逢勾,有業(yè)務(wù)代碼,也有test代碼藐吮,當(dāng)業(yè)務(wù)代碼更新時觸發(fā)build業(yè)務(wù)包的job溺拱,當(dāng)test代碼更新時,build FT job谣辞,這可以通過寫groovy腳本來實現(xiàn)盟迟,大家可以去嘗試。
以上有什么問題可以留言給我潦闲。
By Yang Yongjie
【原創(chuàng)】轉(zhuǎn)載請標(biāo)注文章地址:http://www.reibang.com/p/156de44a44c2