一種持續(xù)集成方法及裝置的制造方法
【專利摘要】本發(fā)明實(shí)施例提供一種持續(xù)集成方法及裝置,涉及計(jì)算機(jī)技術(shù)領(lǐng)域,主要目的在于通過(guò)統(tǒng)一管理持續(xù)集成引擎資源以優(yōu)化持續(xù)集成任務(wù)的處理,提高軟件研發(fā)效率。本發(fā)明實(shí)施例所采用的技術(shù)方案是:接收持續(xù)集成任務(wù);根據(jù)所述持續(xù)集成任務(wù)獲取持續(xù)集成數(shù)據(jù)和持續(xù)集成引擎信息;利用所述持續(xù)集成引擎信息確定集成引擎;執(zhí)行所述集成引擎,處理所述持續(xù)集成數(shù)據(jù)得到集成結(jié)果。本發(fā)明主要用于對(duì)軟件產(chǎn)品的持續(xù)集成。
【專利說(shuō)明】
一種持續(xù)集成方法及裝置
技術(shù)領(lǐng)域
[0001 ]本發(fā)明實(shí)施例涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種持續(xù)集成方法及裝置。
【背景技術(shù)】
[0002]持續(xù)集成(Continuous Integrat1n,CI),是一種軟件開(kāi)發(fā)實(shí)踐。在持續(xù)集成中,團(tuán)隊(duì)成員頻繁集成他們的工作成果,一般每人每天至少集成一次,也可以多次。每次集成都通過(guò)自動(dòng)化的構(gòu)建(包括編譯,發(fā)布,自動(dòng)化測(cè)試)來(lái)驗(yàn)證,以盡快發(fā)現(xiàn)集成錯(cuò)誤。許多團(tuán)隊(duì)發(fā)現(xiàn)這種方法可以顯著減少集成引起的問(wèn)題,并可以加快團(tuán)隊(duì)合作軟件開(kāi)發(fā)的速度。
[0003]目前敏捷軟件開(kāi)發(fā)已經(jīng)風(fēng)靡世界,為無(wú)數(shù)軟件開(kāi)發(fā)項(xiàng)目所采用。然而在所有這些運(yùn)用敏捷開(kāi)發(fā)獲得成功的軟件項(xiàng)目中,持續(xù)集成及其相關(guān)工具無(wú)疑成為了一項(xiàng)最重要的實(shí)踐。這也是因?yàn)樗畜w現(xiàn)了敏捷開(kāi)發(fā)的各種思想。隨之而來(lái)的是各個(gè)敏捷開(kāi)發(fā)團(tuán)隊(duì)會(huì)為其開(kāi)發(fā)產(chǎn)品部署對(duì)應(yīng)的持續(xù)集成引擎工具,同時(shí)為便于隔離權(quán)限,每個(gè)產(chǎn)品都會(huì)建立一套持續(xù)集成引擎,甚至于多套引擎以滿足不同的項(xiàng)目需求。最終往往是一個(gè)研發(fā)部門會(huì)有多套持續(xù)集成引擎,這些引擎的版本,配置等情況各不相同,會(huì)造成管理上的困難以及數(shù)據(jù)獲取的不便。同時(shí),眾多持續(xù)集成引擎受到研發(fā)部門的權(quán)限限制,使得持續(xù)集成引擎的資源無(wú)法得到最大化的利用,影響軟件研發(fā)效率。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供一種持續(xù)集成方法及裝置,主要目的在于通過(guò)統(tǒng)一管理持續(xù)集成引擎資源以優(yōu)化持續(xù)集成任務(wù)的處理,提高軟件研發(fā)效率。
[0005]為達(dá)到上述目的,本發(fā)明主要提供如下技術(shù)方案:
[0006]—方面,本發(fā)明實(shí)施例提供一種持續(xù)集成方法,該方法包括:
[0007]接收持續(xù)集成任務(wù);
[0008]根據(jù)所述持續(xù)集成任務(wù)獲取持續(xù)集成數(shù)據(jù)和持續(xù)集成引擎信息;
[0009]利用所述持續(xù)集成引擎信息確定集成引擎;
[0010]執(zhí)行所述集成引擎,處理所述持續(xù)集成數(shù)據(jù)得到集成結(jié)果。
[0011]可選的,接收持續(xù)集成任務(wù)包括:
[0012]檢測(cè)持續(xù)集成數(shù)據(jù)是否存在數(shù)據(jù)更新;
[0013]若存在,則發(fā)送集成指令信息,以便管理系統(tǒng)根據(jù)所述集成指令信息發(fā)送持續(xù)集成任務(wù);
[0014]接收所述持續(xù)集成任務(wù)。
[0015]可選的,根據(jù)所述持續(xù)集成任務(wù)獲取持續(xù)集成數(shù)據(jù)和持續(xù)集成引擎信息包括:
[0016]解析所述持續(xù)集成任務(wù),得到產(chǎn)品類型和任務(wù)類型;
[0017]根據(jù)所述產(chǎn)品類型獲取產(chǎn)品的持續(xù)集成數(shù)據(jù);
[0018]根據(jù)所述任務(wù)類型匹配對(duì)應(yīng)的持續(xù)集成引擎信息。
[0019]可選的,利用所述持續(xù)集成引擎信息確定集成引擎包括:
[0020]根據(jù)所述持續(xù)集成引擎信息查找引擎列表中的可用集成引擎,所述引擎列表是管理系統(tǒng)中所有集成引擎的匯總列表;
[0021]根據(jù)可用集成引擎的負(fù)載情況選擇一臺(tái)集成引擎執(zhí)行所述持續(xù)集成任務(wù)。
[0022]可選的,執(zhí)行所述集成引擎,處理所述持續(xù)集成數(shù)據(jù)得到集成結(jié)果包括:
[0023]監(jiān)測(cè)所述集成引擎的執(zhí)行狀態(tài);
[0024]若所述集成引擎中斷執(zhí)行,則更換所述集成引擎,重新執(zhí)行所述持續(xù)集成任務(wù),得到集成結(jié)果。
[0025]可選的,所述方法還包括:
[0026]在執(zhí)行所述集成引擎后,向管理系統(tǒng)發(fā)送含有集成成功信息或集成失敗信息的集成結(jié)果。
[0027]另一方面,本發(fā)明實(shí)施例提供一種持續(xù)集成裝置,該裝置包括:
[0028]接收單元,用于接收持續(xù)集成任務(wù);
[0029]獲取單元,用于根據(jù)所述接收單元接收的持續(xù)集成任務(wù)獲取持續(xù)集成數(shù)據(jù)和持續(xù)集成引擎信息;
[0030]確定單元,用于利用所述獲取單元獲取的持續(xù)集成引擎信息確定集成引擎;
[0031 ]執(zhí)行單元,用于執(zhí)行所述確定單元確定的集成引擎,處理所述持續(xù)集成數(shù)據(jù)得到集成結(jié)果。
[0032]可選的,所述接收單元包括:
[0033]檢測(cè)模塊,用于檢測(cè)持續(xù)集成數(shù)據(jù)是否存在數(shù)據(jù)更新;
[0034]發(fā)送模塊,用于當(dāng)所述檢測(cè)模塊檢測(cè)存在數(shù)據(jù)更新時(shí),發(fā)送集成指令信息,以便管理系統(tǒng)根據(jù)所述集成指令信息發(fā)送持續(xù)集成任務(wù);
[0035]接收模塊,用于接收所述持續(xù)集成任務(wù)。
[0036]可選的,所述獲取單元包括:
[0037]解析模塊,用于解析所述持續(xù)集成任務(wù),得到產(chǎn)品類型和任務(wù)類型;
[0038]獲取模塊,用于根據(jù)所述解析模塊解析得到的產(chǎn)品類型獲取產(chǎn)品的持續(xù)集成數(shù)據(jù);
[0039]匹配模塊,用于根據(jù)所述解析模塊解析得到的任務(wù)類型匹配對(duì)應(yīng)的持續(xù)集成引擎
?目息O
[0040]可選的,所述確定單元包括:
[0041]查找模塊,用于根據(jù)所述持續(xù)集成引擎信息查找引擎列表中的可用集成引擎,所述引擎列表是管理系統(tǒng)中所有集成引擎的匯總列表;
[0042]選擇模塊,用于根據(jù)所述查找模塊得到的可用集成引擎的負(fù)載情況選擇一臺(tái)集成引擎執(zhí)行所述持續(xù)集成任務(wù)。
[0043]可選的,所述執(zhí)行單元包括:
[0044]監(jiān)測(cè)模塊,用于監(jiān)測(cè)所述集成引擎的執(zhí)行狀態(tài);
[0045]更換模塊,用于當(dāng)所述監(jiān)測(cè)模塊監(jiān)測(cè)到集成引擎中斷執(zhí)行時(shí),更換所述集成引擎,重新執(zhí)行所述持續(xù)集成任務(wù),得到集成結(jié)果。
[0046]可選的,所述裝置還包括:
[0047]發(fā)送單元,用于在所述執(zhí)行單元執(zhí)行所述集成引擎后,向管理系統(tǒng)發(fā)送含有集成成功信息或集成失敗信息的集成結(jié)果。
[0048]本發(fā)明實(shí)施例提供的一種持續(xù)集成方法及裝置,是將現(xiàn)有分布在各個(gè)研發(fā)部門中的集成引擎進(jìn)行資源整合,通過(guò)統(tǒng)一的調(diào)度與管理最大效率的使用集成引擎,進(jìn)行研發(fā)軟件的持續(xù)集成。相對(duì)于現(xiàn)有的持續(xù)集成的方式,本發(fā)明實(shí)施例獲取系統(tǒng)中所有的持續(xù)集成任務(wù),并根據(jù)該持續(xù)集成任務(wù)采集所需的持續(xù)集成數(shù)據(jù),以及選擇適合的持續(xù)集成引擎。以此,能夠快速的為繼續(xù)集成任務(wù)匹配到持續(xù)集成引擎,并進(jìn)行處理,避免了由于使用固定引擎處理所存在的等待、故障等弊端,提高了任務(wù)處理的效率,同時(shí)也均衡了引擎的負(fù)載,優(yōu)化了軟件研發(fā)的系統(tǒng)處理資源。
【附圖說(shuō)明】
[0049]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作以簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0050]圖1示出了本發(fā)明實(shí)施例提供的一種持續(xù)集成方法流程圖;
[0051]圖2示出了本發(fā)明實(shí)施例提供的另一種持續(xù)集成方法流程圖;
[0052]圖3示出了本發(fā)明實(shí)施例提供的一種持續(xù)集成裝置的結(jié)構(gòu)組成框圖;
[0053]圖4示出了本發(fā)明實(shí)施例提供的另一種持續(xù)集成裝置的結(jié)構(gòu)組成框圖;
[0054]圖5示出了本發(fā)明實(shí)施例提供的一種持續(xù)集成裝置又一實(shí)施例的示意圖。
【具體實(shí)施方式】
[0055]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0056]本發(fā)明實(shí)施例提供了一種持續(xù)集成方法,如圖1所示,該方法應(yīng)用于用于軟件產(chǎn)品的研發(fā)控制管理系統(tǒng),尤其是持續(xù)集成系統(tǒng),具體步驟包括:
[0057]101、接收持續(xù)集成任務(wù)。
[0058]一款軟件的開(kāi)發(fā),隨著研發(fā)進(jìn)度的推進(jìn),更多新內(nèi)容的加入,需要對(duì)軟件進(jìn)行不斷的持續(xù)集成,以及時(shí)發(fā)現(xiàn)研發(fā)過(guò)程中存在的錯(cuò)誤。在本發(fā)明實(shí)施例中,所接收的持續(xù)集成任務(wù)來(lái)自于軟件研發(fā)的各個(gè)團(tuán)隊(duì)、研發(fā)人員,或者是系統(tǒng)根據(jù)預(yù)置的觸發(fā)條件所自動(dòng)生成的持續(xù)集成任務(wù),如定時(shí)的進(jìn)行持續(xù)集成、判斷軟件研發(fā)數(shù)據(jù)在更改時(shí)進(jìn)行持續(xù)集成。在本步驟中,將原本由各研發(fā)團(tuán)隊(duì)進(jìn)行的持續(xù)集成工作,以持續(xù)集成任務(wù)的形式由持續(xù)集成系統(tǒng)統(tǒng)一接收與處理。對(duì)于各研發(fā)部門或人員來(lái)說(shuō),自身所提出的持續(xù)集成任務(wù)在本部門或團(tuán)隊(duì)的集成引擎負(fù)載過(guò)大時(shí),可以由持續(xù)集成系統(tǒng)分配其他部門閑置的集成引擎進(jìn)行任務(wù)的處理。大大提高了持續(xù)集成任務(wù)的處理效率。
[0059]102、根據(jù)持續(xù)集成任務(wù)獲取持續(xù)集成數(shù)據(jù)和持續(xù)集成引擎信息。
[0060]持續(xù)集成系統(tǒng)是將現(xiàn)有的分布在各個(gè)研發(fā)團(tuán)隊(duì)或部門的持續(xù)集成引擎進(jìn)行統(tǒng)一的管理,包括確定引擎所能夠執(zhí)行的任務(wù)類型,監(jiān)控引擎的工作狀態(tài),即判斷是否在工作中以及工作的負(fù)載情況等。同時(shí),該系統(tǒng)與軟件的研發(fā)數(shù)據(jù)系統(tǒng)相鏈接,能過(guò)獲取當(dāng)前軟件研發(fā)的最新數(shù)據(jù)。通過(guò)對(duì)持續(xù)集成任務(wù)的分析,得到能夠執(zhí)行該任務(wù)的持續(xù)集成引擎信息,并且獲取執(zhí)行該任務(wù)的持續(xù)集成數(shù)據(jù)。例如,某個(gè)軟件研發(fā)部門在完成一段軟件代碼的編譯后,需要對(duì)該段代碼進(jìn)行持續(xù)集成以校驗(yàn)該段代碼是否準(zhǔn)確。此時(shí),需要將該段代碼存儲(chǔ)在該軟件的研發(fā)數(shù)據(jù)系統(tǒng)中,再向持續(xù)集成系統(tǒng)發(fā)送持續(xù)集成任務(wù)的請(qǐng)求(也可以是在保存代碼數(shù)據(jù)的同時(shí),由研發(fā)數(shù)據(jù)系統(tǒng)根據(jù)所修改或添加的數(shù)據(jù)內(nèi)容向研發(fā)數(shù)據(jù)系統(tǒng)發(fā)送持續(xù)集成任務(wù)),由持續(xù)集成系統(tǒng)根據(jù)該任務(wù)分析得到能夠處理該任務(wù)的持續(xù)集成引擎信息,以及向研發(fā)數(shù)據(jù)系統(tǒng)調(diào)取相關(guān)的持續(xù)集成數(shù)據(jù)以供集成引擎進(jìn)行持續(xù)集成操作,所需的數(shù)據(jù)包括需要集成的軟件代碼段以及與該段代碼相關(guān)聯(lián)的數(shù)據(jù)內(nèi)容。
[0061]103、利用持續(xù)集成引擎信息確定集成引擎。
[0062]在持續(xù)集成系統(tǒng)中,由于集成引擎的種類與功能的不同,系統(tǒng)將標(biāo)記出每個(gè)集成引擎所能夠處理的任務(wù)類型,在每種任務(wù)類型中,還會(huì)標(biāo)記有不同任務(wù)的特征信息,這些特征信息即是102中的持續(xù)集成引擎信息。通過(guò)分析出每個(gè)持續(xù)集成任務(wù)中的持續(xù)集成引擎信息,就可以確定執(zhí)行該任務(wù)的集成引擎。而多數(shù)情況下,根據(jù)持續(xù)集成引擎信息所匹配出的集成引擎不只一個(gè),此時(shí),就需要再設(shè)置一些預(yù)置的排序策略對(duì)所選的集成引擎進(jìn)行排序,選擇出最適合執(zhí)行該任務(wù)的集成引擎。本發(fā)明實(shí)施例中具體的排序策略不限于集成引擎的工作負(fù)載情況,集成引擎的處理速度等因素。
[0063]104、執(zhí)行集成引擎,處理持續(xù)集成數(shù)據(jù)得到集成結(jié)果。
[0064]在確定了執(zhí)行持續(xù)集成任務(wù)的集成引擎后,系統(tǒng)將調(diào)用并啟動(dòng)該集成引擎,并為該提供必要的處理資源以及所獲取的持續(xù)集成數(shù)據(jù)。由集成引擎根據(jù)持續(xù)集成數(shù)據(jù)進(jìn)行集成測(cè)試,并將所得到的集成結(jié)果保存在系統(tǒng)中或是發(fā)送至持續(xù)集成任務(wù)的請(qǐng)求端。
[0065]結(jié)合上述的實(shí)現(xiàn)方式可以看出,本發(fā)明實(shí)施例所采用的持續(xù)集成方法,是將現(xiàn)有分布在各個(gè)研發(fā)部門中的集成引擎進(jìn)行資源整合,通過(guò)統(tǒng)一的調(diào)度與管理最大效率的使用集成引擎,進(jìn)行研發(fā)軟件的持續(xù)集成。相對(duì)于現(xiàn)有的持續(xù)集成的方式,本發(fā)明實(shí)施例獲取系統(tǒng)中所有的持續(xù)集成任務(wù),并根據(jù)該持續(xù)集成任務(wù)采集所需的持續(xù)集成數(shù)據(jù),以及選擇適合的持續(xù)集成引擎。以此,能夠快速的為繼續(xù)集成任務(wù)匹配到持續(xù)集成引擎,并進(jìn)行處理,避免了由于使用固定引擎處理所存在的等待、故障等弊端,提高了任務(wù)處理的效率,同時(shí)也均衡了引擎的負(fù)載,優(yōu)化了軟件研發(fā)的系統(tǒng)處理資源。
[0066]為了更加詳細(xì)地說(shuō)明本發(fā)明實(shí)施例所提出的持續(xù)集成方法,本方實(shí)施例還提供了一種持續(xù)集成方法,如圖2所示,該方法所包括的具體步驟為:
[0067]201、接收持續(xù)集成任務(wù)。
[0068]在本發(fā)明實(shí)施例中,持續(xù)集成任務(wù)由系統(tǒng)根據(jù)軟件的研發(fā)數(shù)據(jù)是否存在更新進(jìn)行判斷,當(dāng)研發(fā)數(shù)據(jù)更新時(shí),持續(xù)集成系統(tǒng)將為更新部分的軟件數(shù)據(jù)生成集成指令信息,以告知管理系統(tǒng)該部分的軟件數(shù)據(jù)需要進(jìn)行持續(xù)集成操作。由管理系統(tǒng)自動(dòng)生成持續(xù)集成任務(wù)并發(fā)送給持續(xù)集成系統(tǒng)。例如,在軟件研發(fā)過(guò)程中,某個(gè)部門將一段剛編譯完成的代碼上傳至數(shù)據(jù)系統(tǒng)中并保存下來(lái),此時(shí),持續(xù)集成系統(tǒng)根據(jù)實(shí)時(shí)監(jiān)測(cè)到的數(shù)據(jù)系統(tǒng)中的內(nèi)容變化,會(huì)將該保存操作以集成指令信息的形式上報(bào)給管理系統(tǒng),告知該部門的軟件數(shù)據(jù)有更新且需要進(jìn)行持續(xù)集成,再由管理系統(tǒng)根據(jù)代碼更新的內(nèi)容與部門確定進(jìn)行持續(xù)更新的軟件產(chǎn)品以及進(jìn)行持續(xù)集成的類型,以此來(lái)生成持續(xù)集成任務(wù)發(fā)送給持續(xù)集成系統(tǒng)。
[0069]202、根據(jù)持續(xù)集成任務(wù)獲取持續(xù)集成數(shù)據(jù)和持續(xù)集成引擎信息。
[0070]持續(xù)集成系統(tǒng)在接收到持續(xù)集成任務(wù)后,需要先對(duì)該任務(wù)進(jìn)行解析,獲取任務(wù)中指定持續(xù)集成的產(chǎn)品類型和任務(wù)類型。其中,產(chǎn)品類型包括需要進(jìn)行持續(xù)集成的軟件產(chǎn)品,該產(chǎn)品中需要進(jìn)行持續(xù)進(jìn)程的部分信息,即存在代碼更新的部分。而任務(wù)類型則是對(duì)該產(chǎn)品的數(shù)據(jù)更新部分所進(jìn)行持續(xù)集成的任務(wù)類型,例如確定該任務(wù)的屬性是持續(xù)檢查、持續(xù)編譯、持續(xù)驗(yàn)證或是持續(xù)部署等等不同的類型。
[0071]通過(guò)解析得到的產(chǎn)品類型可以用于獲取該軟件產(chǎn)品的持續(xù)集成數(shù)據(jù),即更新的數(shù)據(jù)代碼。而根據(jù)任務(wù)類型則可以匹配出適合該持續(xù)集成任務(wù)的持續(xù)集成引擎信息,即適合執(zhí)行該任務(wù)的集成引擎的特征信息。
[0072]203、利用持續(xù)集成引擎信息確定集成引擎。
[0073]在本發(fā)明實(shí)施例中,系統(tǒng)內(nèi)維護(hù)有一個(gè)集成引擎列表,在該列表中記錄有管理系統(tǒng)中所有研發(fā)部門或團(tuán)隊(duì)所使用的集成引擎,以及各個(gè)引擎當(dāng)前的工作狀態(tài)。此外,在該列表中還記錄有每個(gè)引擎所能處理的持續(xù)集成任務(wù)的類型,即該引擎所具有的特征信息。
[0074]當(dāng)持續(xù)集成系統(tǒng)根據(jù)持續(xù)集成任務(wù)得到持續(xù)集成引擎信息時(shí),根據(jù)與集成引擎列表中各個(gè)引擎的特征信息相匹配就可以查找出可用于執(zhí)行該持續(xù)集成任務(wù)的集成引擎,得到一個(gè)可用集成引擎集合。在該集合中存在有多臺(tái)可用的集成引擎。為了在其中找出最適合與執(zhí)行該任務(wù)的集成引擎,根據(jù)集合中各引擎當(dāng)前的負(fù)載情況,選擇負(fù)載最少的一臺(tái)為執(zhí)行該持續(xù)集成任務(wù)的集成引擎。
[0075]進(jìn)一步的,當(dāng)所匹配出的引擎集合中的所有引擎都處于滿負(fù)荷的狀態(tài)下時(shí),系統(tǒng)將暫時(shí)不為該持續(xù)進(jìn)程任務(wù)分配集成引擎,而是等待有能夠處理該任務(wù)的引擎時(shí)再進(jìn)行任務(wù)的分配。
[0076]204、監(jiān)測(cè)集成引擎的執(zhí)行狀態(tài)。
[0077]確定了集成引擎后,系統(tǒng)將啟動(dòng)該引擎執(zhí)行持續(xù)集成任務(wù),并且在執(zhí)行的過(guò)程中實(shí)時(shí)的檢測(cè)該引擎的執(zhí)行狀態(tài),判斷該引擎是否在正常的進(jìn)行持續(xù)集成任務(wù)。直至得出持續(xù)集成的結(jié)果。
[0078]205、更換集成引擎重新執(zhí)行持續(xù)集成任務(wù)。
[0079]當(dāng)系統(tǒng)檢測(cè)到集成引擎在執(zhí)行的過(guò)程出現(xiàn)了故障,無(wú)法得到持續(xù)集成結(jié)果時(shí),將在上述的集成引擎集合中再選擇一臺(tái)集成引擎重新加載該持續(xù)集成任務(wù),以保證該集成任務(wù)能夠得到最終的集成結(jié)果,提高了任務(wù)處理完成的效率。
[0080]206、向管理系統(tǒng)發(fā)送集成結(jié)果。
[0081]在集成引擎完成持續(xù)集成任務(wù),得到集成結(jié)果后,會(huì)將該結(jié)果上報(bào)給管理系統(tǒng)。其中,集成結(jié)果包括持續(xù)集成任務(wù)的集成成功信息或者是集成失敗信息,集成成功說(shuō)明軟件更新的數(shù)據(jù)在集成后不會(huì)與其他已有的程序存在沖突,可以進(jìn)行繼續(xù)的研發(fā)工作;而集成失敗則說(shuō)明在集成過(guò)程中,所更新的軟件研發(fā)數(shù)據(jù)不能與已有的數(shù)據(jù)相匹配,需要進(jìn)行修改調(diào)整。而在集成失敗信息中還應(yīng)包括具體的集成錯(cuò)誤的位置信息。以便于研發(fā)人員根據(jù)該信息進(jìn)行數(shù)據(jù)代碼的修改。
[0082]進(jìn)一步的,作為對(duì)上述方法的實(shí)現(xiàn),本發(fā)明實(shí)施例提供了一種持續(xù)集成裝置,該裝置設(shè)置于軟件產(chǎn)品的研發(fā)控制管理系統(tǒng)的服務(wù)器中,并且該服務(wù)器主要用于執(zhí)行持續(xù)集成的相關(guān)操作,如圖3所示,該裝置包括:
[0083]接收單元31,用于接收持續(xù)集成任務(wù);
[0084]獲取單元32,用于根據(jù)所述接收單元31接收的持續(xù)集成任務(wù)獲取持續(xù)集成數(shù)據(jù)和持續(xù)集成引擎信息;
[0085]確定單元33,用于利用所述獲取單元32獲取的持續(xù)集成引擎信息確定集成引擎;
[0086]執(zhí)行單元34,用于執(zhí)行所述確定單元33確定的集成引擎,處理所述持續(xù)集成數(shù)據(jù)得到集成結(jié)果。
[0087]進(jìn)一步的,如圖4所示,所述接收單元31包括:
[0088]檢測(cè)模塊311,用于檢測(cè)持續(xù)集成數(shù)據(jù)是否存在數(shù)據(jù)更新;
[0089]發(fā)送模塊312,用于當(dāng)所述檢測(cè)模塊311檢測(cè)存在數(shù)據(jù)更新時(shí),發(fā)送集成指令信息,以便管理系統(tǒng)根據(jù)所述集成指令信息發(fā)送持續(xù)集成任務(wù);
[0090]接收模塊313,用于接收所述持續(xù)集成任務(wù)。
[0091]進(jìn)一步的,如圖4所示,所述獲取單元32包括:
[0092]解析模塊321,用于解析所述持續(xù)集成任務(wù),得到產(chǎn)品類型和任務(wù)類型;
[0093]獲取模塊322,用于根據(jù)所述解析模塊321解析得到的產(chǎn)品類型獲取產(chǎn)品的持續(xù)集成數(shù)據(jù);
[0094]匹配模塊323,用于根據(jù)所述解析模塊321解析得到的任務(wù)類型匹配對(duì)應(yīng)的持續(xù)集成引擎信息。
[0095]進(jìn)一步的,如圖4所示,所述確定單元33包括:
[0096]查找模塊331,用于根據(jù)所述持續(xù)集成引擎信息查找引擎列表中的可用集成引擎,所述引擎列表是管理系統(tǒng)中所有集成引擎的匯總列表;
[0097]選擇模塊332,用于根據(jù)所述查找模塊331得到的可用集成引擎的負(fù)載情況選擇一臺(tái)集成引擎執(zhí)行所述持續(xù)集成任務(wù)。
[0098]進(jìn)一步的,如圖4所示,所述執(zhí)行單元34包括:
[0099]監(jiān)測(cè)模塊341,用于監(jiān)測(cè)所述集成引擎的執(zhí)行狀態(tài);
[0100]更換模塊342,用于當(dāng)所述監(jiān)測(cè)模塊341監(jiān)測(cè)到集成引擎中斷執(zhí)行時(shí),更換所述集成引擎,重新執(zhí)行所述持續(xù)集成任務(wù),得到集成結(jié)果。
[0101]進(jìn)一步的,如圖4所示,所述裝置還包括:
[0102]發(fā)送單元35,用于在所述執(zhí)行單元34執(zhí)行所述集成引擎后,向管理系統(tǒng)發(fā)送含有集成成功信息或集成失敗信息的集成結(jié)果。
[0103]綜上所述,本發(fā)明實(shí)施例所采用的一種持續(xù)集成方法及裝置,是將現(xiàn)有分布在各個(gè)研發(fā)部門中的集成引擎進(jìn)行資源整合,通過(guò)統(tǒng)一的調(diào)度與管理最大效率的使用集成引擎,進(jìn)行研發(fā)軟件的持續(xù)集成。相對(duì)于現(xiàn)有的持續(xù)集成的方式,本發(fā)明實(shí)施例獲取系統(tǒng)中所有的持續(xù)集成任務(wù),并根據(jù)該持續(xù)集成任務(wù)采集所需的持續(xù)集成數(shù)據(jù),以及選擇適合的持續(xù)集成引擎。以此,能夠快速的為繼續(xù)集成任務(wù)匹配到持續(xù)集成引擎,并進(jìn)行處理,避免了由于使用固定引擎處理所存在的等待、故障等弊端,提高了任務(wù)處理的效率,同時(shí)也均衡了引擎的負(fù)載,優(yōu)化了軟件研發(fā)的系統(tǒng)處理資源。
[0104]需要說(shuō)明的是,針對(duì)上述持續(xù)集成裝置,凡是本發(fā)明實(shí)施例中使用到的各個(gè)單元模塊的功能都可以通過(guò)硬件處理器(hardware processor)來(lái)實(shí)現(xiàn)。
[0105]示例性的,如圖5所示,圖5示出了本發(fā)明實(shí)施例提供的一種持續(xù)集成裝置又一實(shí)施例的示意圖,該持續(xù)集成裝置設(shè)置在軟件產(chǎn)品研發(fā)控制管理系統(tǒng)的服務(wù)器中,該服務(wù)器可以包括:處理器(processor )51、通信接口(Communicat1ns Interface)52、存儲(chǔ)器(memory )53和總線54,其中,處理器51、通信接口 52、存儲(chǔ)器53通過(guò)總線54完成相互間的通信。通信接口 52可以用于服務(wù)器與客戶端之間的信息傳輸。處理器51可以調(diào)用存儲(chǔ)器53中的邏輯指令,以執(zhí)行如下方法:獲取客戶端發(fā)出的持續(xù)集成請(qǐng)求;根據(jù)所述持續(xù)集成請(qǐng)求,獲取資源數(shù)據(jù)平臺(tái)中的展示數(shù)據(jù)和報(bào)告模板,所述資源數(shù)據(jù)平臺(tái)用于存儲(chǔ)所有產(chǎn)品的產(chǎn)品數(shù)據(jù)以及相應(yīng)的報(bào)告模板;將所述展示數(shù)據(jù)添加到所述報(bào)告模板中,生成展示報(bào)告;向所述客戶端發(fā)送所述展示報(bào)告,以便在所述客戶端中進(jìn)行展示。
[0106]此外,上述的存儲(chǔ)器53中的邏輯指令可以通過(guò)軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(R0M,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0107]以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動(dòng)的情況下,即可以理解并實(shí)施。
[0108]通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件。基于這樣的理解,上述技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
[0109]最后應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
【主權(quán)項(xiàng)】
1.一種持續(xù)集成方法,其特征在于,所述方法包括: 接收持續(xù)集成任務(wù); 根據(jù)所述持續(xù)集成任務(wù)獲取持續(xù)集成數(shù)據(jù)和持續(xù)集成引擎信息; 利用所述持續(xù)集成引擎信息確定集成引擎; 執(zhí)行所述集成引擎,處理所述持續(xù)集成數(shù)據(jù)得到集成結(jié)果。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,接收持續(xù)集成任務(wù)包括: 檢測(cè)持續(xù)集成數(shù)據(jù)是否存在數(shù)據(jù)更新; 若存在,則發(fā)送集成指令信息,以便管理系統(tǒng)根據(jù)所述集成指令信息發(fā)送持續(xù)集成任務(wù); 接收所述持續(xù)集成任務(wù)。3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,根據(jù)所述持續(xù)集成任務(wù)獲取持續(xù)集成數(shù)據(jù)和持續(xù)集成引擎信息包括: 解析所述持續(xù)集成任務(wù),得到產(chǎn)品類型和任務(wù)類型; 根據(jù)所述產(chǎn)品類型獲取產(chǎn)品的持續(xù)集成數(shù)據(jù); 根據(jù)所述任務(wù)類型匹配對(duì)應(yīng)的持續(xù)集成引擎信息。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,利用所述持續(xù)集成引擎信息確定集成引擎包括: 根據(jù)所述持續(xù)集成引擎信息查找引擎列表中的可用集成引擎,所述引擎列表是管理系統(tǒng)中所有集成引擎的匯總列表; 根據(jù)可用集成引擎的負(fù)載情況選擇一臺(tái)集成引擎執(zhí)行所述持續(xù)集成任務(wù)。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,執(zhí)行所述集成引擎,處理所述持續(xù)集成數(shù)據(jù)得到集成結(jié)果包括: 監(jiān)測(cè)所述集成引擎的執(zhí)行狀態(tài); 若所述集成引擎中斷執(zhí)行,則更換所述集成引擎,重新執(zhí)行所述持續(xù)集成任務(wù),得到集成結(jié)果。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述方法還包括: 在執(zhí)行所述集成引擎后,向管理系統(tǒng)發(fā)送含有集成成功信息或集成失敗信息的集成結(jié)果O7.一種持續(xù)集成裝置,其特征在于,所述裝置包括: 接收單元,用于接收持續(xù)集成任務(wù); 獲取單元,用于根據(jù)所述接收單元接收的持續(xù)集成任務(wù)獲取持續(xù)集成數(shù)據(jù)和持續(xù)集成引擎信息; 確定單元,用于利用所述獲取單元獲取的持續(xù)集成引擎信息確定集成引擎; 執(zhí)行單元,用于執(zhí)行所述確定單元確定的集成引擎,處理所述持續(xù)集成數(shù)據(jù)得到集成結(jié)果。8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述接收單元包括: 檢測(cè)模塊,用于檢測(cè)持續(xù)集成數(shù)據(jù)是否存在數(shù)據(jù)更新; 發(fā)送模塊,用于當(dāng)所述檢測(cè)模塊檢測(cè)存在數(shù)據(jù)更新時(shí),發(fā)送集成指令信息,以便管理系統(tǒng)根據(jù)所述集成指令信息發(fā)送持續(xù)集成任務(wù); 接收模塊,用于接收所述持續(xù)集成任務(wù)。9.根據(jù)權(quán)利要求7或8所述的裝置,其特征在于,所述獲取單元包括: 解析模塊,用于解析所述持續(xù)集成任務(wù),得到產(chǎn)品類型和任務(wù)類型; 獲取模塊,用于根據(jù)所述解析模塊解析得到的產(chǎn)品類型獲取產(chǎn)品的持續(xù)集成數(shù)據(jù); 匹配模塊,用于根據(jù)所述解析模塊解析得到的任務(wù)類型匹配對(duì)應(yīng)的持續(xù)集成引擎信息。10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述確定單元包括: 查找模塊,用于根據(jù)所述持續(xù)集成引擎信息查找引擎列表中的可用集成引擎,所述引擎列表是管理系統(tǒng)中所有集成引擎的匯總列表; 選擇模塊,用于根據(jù)所述查找模塊得到的可用集成引擎的負(fù)載情況選擇一臺(tái)集成引擎執(zhí)行所述持續(xù)集成任務(wù)。11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述執(zhí)行單元包括: 監(jiān)測(cè)模塊,用于監(jiān)測(cè)所述集成引擎的執(zhí)行狀態(tài); 更換模塊,用于當(dāng)所述監(jiān)測(cè)模塊監(jiān)測(cè)到集成引擎中斷執(zhí)行時(shí),更換所述集成引擎,重新執(zhí)行所述持續(xù)集成任務(wù),得到集成結(jié)果。12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述裝置還包括: 發(fā)送單元,用于在所述執(zhí)行單元執(zhí)行所述集成引擎后,向管理系統(tǒng)發(fā)送含有集成成功信息或集成失敗信息的集成結(jié)果。
【文檔編號(hào)】G06F9/44GK105868957SQ201510960307
【公開(kāi)日】2016年8月17日
【申請(qǐng)日】2015年12月18日
【發(fā)明人】雷濤
【申請(qǐng)人】樂(lè)視致新電子科技(天津)有限公司