以前在上家公司枯跑,管理代碼庫的工具是Gerrit早敬,所以我們用Gerrit Code Review(Jenkins Gerrit plugin),在人工做code review之前會有Jenkins Auto Verify Job。Verify的內容大致有編譯桌肴、代碼靜態(tài)檢查等。
在現(xiàn)在的工作環(huán)境宗收,用公司統(tǒng)一的GitLab工具一汽,code review的流程也只有人工審查,經(jīng)常會發(fā)現(xiàn)不了一些代碼改動的問題碳锈。一旦代碼被merge到主干后顽冶,導致daily build失敗,無法打出新的包售碳,需要緊急解決强重,很被動。
于是根據(jù)以前的CI經(jīng)驗贸人,對GitLab Code Review做了流程上的優(yōu)化(Jenkins Gitlab Plugin)间景。
老的流程如下圖:
優(yōu)化后的流程:增加了黃色虛線圓圈里的部分
Jenkins verify結束,會在GitLab的Merge Request上把Verify的結果推送上去艺智,并進行投票倘要。
配置:
1. 首先在Jenkins上安裝Gitlab plugin。
2. Jenkins -> Manager -> System Configure -> Gitlab
? ? URL: gitlab的url
? ? Credentials:登陸到gitlab十拣,獲取到API token封拧,在這里Add一個新的credential
? ? 配置好后志鹃,點擊”Test Connection”,如果配置沒問題泽西,會看到“Success”
3. Jenkins verify job配置 -> GitLab
4.?Jenkins verify job配置 -> GitLab -> 高級
5. Jenkins verify job配置 -> Git
? ? Name:?origin
? ? Refspec:?+refs/heads/*:refs/remotes/origin/* +refs/merge-requests/*/head:refs/remotes/origin/merge-requests/*
? ??Branch Specifier (blank for 'any'):?origin/${gitlabSourceBranch}
6.?Jenkins verify job配置 -> Post-build Actions 添加如下兩項才能在GitLab Merge Request上得到Jenkins verify的結果曹铃。
"Add note with build status on GitLab merge requests" 給GitLab Merge Request發(fā)送成功,失敗或者取消的消息尝苇。
"Add vote for build statuss on GitLab merge requests" 給GitLab Merge Request發(fā)送投票铛只。
7. Gitlab進入到對應的repository -> Settings -> Intergrations -> Add webhook, 同時把Merge Request events的選項勾上。
配置好后糠溜,Save changes -> Test -> Merge Request events, 如果看到Status code 200淳玩,說明連接正常。
Reference:?