綜述:git
依託Jenkins自動化平臺管理,首先在用戶提交代碼(主要是master或者保護分支上的提交)時觸發Jenkins構建,在Jenkins中使用SCM工具獲得最新代碼,而後build,使用SonarQube進行分析。將分析結果以郵件發送給代碼提交者。並在代碼管理平臺上發送pull request請求。
工具
工做環境:測試
代碼管理:stash(Bitbucket Server)ui
自動化工具:jenkinsspa
代碼質量分析:SonarQube插件
插件:jenkins
1.stash中須要安裝Bitbucket Server Webhook for Jenkins插件。用於在代碼提交以後觸發Jenkins Job的構建操做。it
2.Jenkins中須要安裝SonarQube Plugin。用於在代碼構建以後進行分析。自動化
3.Jenkins中安裝Stash pullrequest builder plugin。用於在構建完成以後向stash發送pull request請求。ast
自動化測試流程:
1.在Jenkins中創建兩個job,一個是構建job,例如:buildjob,另外一個是郵件Job,例如:emailjob
2.在buildjob中拉取代碼。經過git命令得到代碼提交者的郵件,提交時間等。存入公共文件。文件規則能夠自行擬定。(遇到Jenkins存在節點的狀況,能夠使用NFS掛載的方式實現文件共享。)
3.build項目,並使用SonarQube進行代碼分析。此時的分析結果會存在Jenkins控制檯。
4.在emailjob中,首先讀取公共配置文件。讀取收件人信息,郵件標題,Jenkins任務名,構建號等。經過Jenkins CLI讀取上一步中控制檯的內容,提取相關信息做爲郵件正文。
5.發送郵件。
6.在buildjob中向stash提交一個pull request請求。項目全部者看到pull request對代碼review,而後決定時候合併代碼。
END
補充:
在發郵件時,能夠考慮將每次master或其它保護分支上的提交不只發給代碼提交者,還發給項目全部者。以便其進行審覈。