這些可能和別的項(xiàng)目沒什么區(qū)別,但AS7的質(zhì)控流程不只自動(dòng)化到這種程度,它在所有的“連接環(huán)節(jié)”也是自動(dòng)化的。這些環(huán)節(jié)包括:
Github中有Patch提交過來(lái)時(shí),自動(dòng)執(zhí)行項(xiàng)目測(cè)試。
Jira中的Bug報(bào)告與Github中的Patch相關(guān)聯(lián)。
有了這兩點(diǎn),則從代碼提交,到測(cè)試,到Bug跟蹤記錄的過程便全聯(lián)系在一起了,中間環(huán)節(jié)不需人工干預(yù)。
看下Github與項(xiàng)目測(cè)試之間的連接,具體看下AS7的這個(gè)Patch提交請(qǐng)求:
https://github.com/jbossas/jboss-as/pull/1676
注意到這兩條日志:
可以看到在github中有jboss-as-pull-request這個(gè)用戶將這個(gè)Patch與AS7的Jenkins測(cè)試服務(wù)器中的代碼進(jìn)行了合并,并觸發(fā)執(zhí)行了測(cè)試工作:
http://lightning.mw.lab.eng.bos.redhat.com/jenkins/job/as7-param-pull/
jboss-as-pull-request這個(gè)用戶實(shí)際上是機(jī)器人,用于定時(shí)查找提交給AS7的Patch,執(zhí)行合并測(cè)試工作并終給出測(cè)試結(jié) 果。上面的地址是AS7的Jenkins測(cè)試服務(wù)器所在位置,僅能從github上面看到鏈接但無(wú)法從外網(wǎng)訪問。因此我將服務(wù)器的運(yùn)行情況截圖如下:
有關(guān)Jenkins的使用方法,本文不準(zhǔn)備展開講解,有興趣可看此篇文章: 《基于Jenkins的持續(xù)集成》
接下來(lái)我們看看github上面的代碼流程是如何和Jira結(jié)合在一起的。試著打開一個(gè)AS7的Bug Report看看:
https://issues.jboss.org/browse/AS7-1476?page=com.atlassian.jira.plugin.system.issuetabpanels:changehistory-tabpanel#issue-tabs
看到有這樣一欄:
Github的Pull Reqest與Bug Report連系在了一起。這是通過JIRA與Github之間的插件完成的。下面是JIRA與Github之間相聯(lián)系的流程,在Jira中進(jìn)行了定制實(shí)現(xiàn):
通過Jira中的Link Pull Request,將代碼與Bug管理聯(lián)系在了一起。