本發(fā)明涉及項(xiàng)目持續(xù)集成技術(shù)領(lǐng)域,具體涉及一種基于定時(shí)構(gòu)建的自動(dòng)化系統(tǒng)集成方法,基于自動(dòng)化的系統(tǒng)集成方法能夠降低項(xiàng)目開(kāi)發(fā)周期內(nèi)的研發(fā)風(fēng)險(xiǎn),保證每日都有可用的集成版本。
背景技術(shù):
隨著IT行業(yè)的不斷發(fā)展,軟件開(kāi)發(fā)的復(fù)雜度也不斷提高。與此同時(shí),軟件系統(tǒng)的開(kāi)發(fā)團(tuán)隊(duì)也越來(lái)越龐大,而如何更好地協(xié)同整個(gè)團(tuán)隊(duì)進(jìn)行高效準(zhǔn)確的工作,從而確保軟件開(kāi)發(fā)的質(zhì)量已經(jīng)成為開(kāi)發(fā)過(guò)程中不可回避的問(wèn)題。傳統(tǒng)的軟件集成通常放在開(kāi)發(fā)階段后期。但是系統(tǒng)集成越晚,發(fā)現(xiàn)問(wèn)題的時(shí)間也越晚,其修復(fù)成本也越高、耗時(shí)也越長(zhǎng)。而且經(jīng)過(guò)重新修復(fù)后可能產(chǎn)生新的錯(cuò)誤,因此整個(gè)系統(tǒng)需要進(jìn)行再次集成和測(cè)試,從而導(dǎo)致整個(gè)軟件開(kāi)發(fā)周期漫長(zhǎng)且不可預(yù)知。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問(wèn)題是:本發(fā)明針對(duì)以上問(wèn)題,提供一種基于定時(shí)構(gòu)建的自動(dòng)化系統(tǒng)集成方法,通過(guò)定時(shí)可配置的集成頻率依次進(jìn)行自動(dòng)化更新代碼,自動(dòng)化編譯檢測(cè),自動(dòng)化安裝部署、自動(dòng)化測(cè)試,保證了開(kāi)發(fā)系統(tǒng)中的問(wèn)題能迅速被發(fā)現(xiàn)和修復(fù),降低了集成失敗的風(fēng)險(xiǎn),使得系統(tǒng)在開(kāi)發(fā)中始終保持在一個(gè)穩(wěn)定健康的集成狀態(tài)。
本發(fā)明所采用的技術(shù)方案為:
一種基于定時(shí)構(gòu)建的自動(dòng)化系統(tǒng)集成方法,所述方法通過(guò)利用五個(gè)部分:1)版本控制服務(wù)器、2)開(kāi)發(fā)編譯服務(wù)器、3)項(xiàng)目構(gòu)建服務(wù)器、4)系統(tǒng)運(yùn)行服務(wù)器、5)郵件服務(wù)器,完成研發(fā)階段項(xiàng)目的自動(dòng)化系統(tǒng)集成,其中:
1)、版本控制服務(wù)器:跟蹤記錄整個(gè)系統(tǒng)的開(kāi)發(fā)過(guò)程,能夠?qū)ρ邪l(fā)周期的代碼、文檔進(jìn)行更新、回滾、備份等版本控制;
2)、開(kāi)發(fā)編譯服務(wù)器:安裝有編譯工具,同時(shí)部署有項(xiàng)目的編譯腳本,能夠?qū)φ麄€(gè)項(xiàng)目的代碼進(jìn)行編譯和打包;
3)、系統(tǒng)構(gòu)建服務(wù)器:構(gòu)建策略的執(zhí)行者;能夠接收用戶(hù)自定義的構(gòu)建策略,觸發(fā)系統(tǒng)集成;
4)、系統(tǒng)運(yùn)行服務(wù)器:接收系統(tǒng)集成的安裝包,進(jìn)行安裝包的安裝以及自動(dòng)化測(cè)試用例腳本的執(zhí)行,并輸出用例執(zhí)行日志;
5)、郵件服務(wù)器:系統(tǒng)集成的匯報(bào)者,根據(jù)系統(tǒng)運(yùn)行服務(wù)器輸出的用例執(zhí)行日志發(fā)送郵件給構(gòu)建策略制定者,呈現(xiàn)系統(tǒng)集成的結(jié)果。
應(yīng)用該方法后,可以及時(shí)獲取項(xiàng)目開(kāi)發(fā)的質(zhì)量,保證代碼維持在健康,可用狀態(tài)。
所述方法實(shí)現(xiàn)架構(gòu)包括:
項(xiàng)目構(gòu)建服務(wù)器:是整個(gè)系統(tǒng)集成方法的管理者,負(fù)責(zé)接受構(gòu)建策略,并依次觸發(fā)代碼編譯,部署運(yùn)行和郵件發(fā)送;
開(kāi)發(fā)編譯服務(wù)器,負(fù)責(zé)部署有開(kāi)發(fā)環(huán)境、編譯腳本等,接收代碼編譯通知,然后進(jìn)行代碼更新,項(xiàng)目代碼編譯和安裝包歸檔,最終輸出可用的系統(tǒng)安裝包;
版本控制服務(wù)器:負(fù)責(zé)代碼的共享,更新,回滾和回溯,保證項(xiàng)目代碼的統(tǒng)一性;
系統(tǒng)運(yùn)行服務(wù)器:負(fù)責(zé)接受部署運(yùn)行通知,并根據(jù)系統(tǒng)安裝包依次進(jìn)行舊系統(tǒng)清理、新系統(tǒng)安裝、自動(dòng)化用例腳本執(zhí)行,最終輸出用例執(zhí)行日志;
郵件服務(wù)器:負(fù)責(zé)發(fā)送系統(tǒng)集成的結(jié)果,接收郵件發(fā)送通知,把用例執(zhí)行日志以郵件形式通知構(gòu)建策略制定者,完成系統(tǒng)集成的提醒功能。
所述方法流程如下:
(1)首先檢測(cè)定是否滿(mǎn)足定時(shí)構(gòu)建條件,如果滿(mǎn)足,項(xiàng)目構(gòu)建服務(wù)器發(fā)送代碼編譯通知給開(kāi)發(fā)編譯服務(wù)器;
(2)開(kāi)發(fā)編譯服務(wù)器獲取所述項(xiàng)目的代碼、配置和文檔;
(3)下載最新項(xiàng)目代碼,并記錄版本號(hào)以供編譯使用;
(4)開(kāi)發(fā)編譯服務(wù)器根據(jù)編譯腳本,進(jìn)行項(xiàng)目編譯和安裝包打包,并以步驟(3)中的版本號(hào)進(jìn)行標(biāo)記;
(5)編譯返回,通知項(xiàng)目構(gòu)建服務(wù)器;
(6)項(xiàng)目構(gòu)建服務(wù)器發(fā)送部署運(yùn)行通知給系統(tǒng)運(yùn)行服務(wù)器;
(7)系統(tǒng)運(yùn)行服務(wù)器接收到通知后,獲取最新系統(tǒng)安裝包,并依次執(zhí)行:
a)舊系統(tǒng)環(huán)境清理;
b)新系統(tǒng)安裝包安裝;
c)用例腳本執(zhí)行;
(8)系統(tǒng)運(yùn)行服務(wù)器發(fā)送用例執(zhí)行日志給郵件服務(wù)器;
(9)系統(tǒng)運(yùn)行服務(wù)器發(fā)送部署運(yùn)行結(jié)果給項(xiàng)目構(gòu)建服務(wù)器;
(10)項(xiàng)目構(gòu)建服務(wù)器發(fā)送郵件發(fā)送通知給郵件服務(wù)器;
(11)郵件服務(wù)器發(fā)送用例執(zhí)行日志給項(xiàng)目構(gòu)建策略制定者;
(12)郵件服務(wù)器返回消息給項(xiàng)目構(gòu)建服務(wù)器,完成定時(shí)構(gòu)建的系統(tǒng)集成。
本發(fā)明的有益效果為:
本發(fā)明能夠自定義定時(shí)構(gòu)建任務(wù),增加系統(tǒng)集成的易用性;自動(dòng)化構(gòu)建系統(tǒng)集成任務(wù),減少人工干預(yù);提高系統(tǒng)版本質(zhì)量,降低軟件系統(tǒng)集成失敗的風(fēng)險(xiǎn),及時(shí)發(fā)現(xiàn)研發(fā)代碼的缺陷,保證每日都有可用版本。
附圖說(shuō)明
圖1為自動(dòng)化構(gòu)建系統(tǒng)集成流程圖。
具體實(shí)施方式
下面結(jié)合附圖,根據(jù)具體實(shí)施方式對(duì)本發(fā)明進(jìn)一步說(shuō)明:
實(shí)施例1:
一種基于定時(shí)構(gòu)建的自動(dòng)化系統(tǒng)集成方法,所述方法通過(guò)利用五個(gè)部分:1)版本控制服務(wù)器、2)開(kāi)發(fā)編譯服務(wù)器、3)項(xiàng)目構(gòu)建服務(wù)器、4)系統(tǒng)運(yùn)行服務(wù)器、5)郵件服務(wù)器,完成研發(fā)階段項(xiàng)目的自動(dòng)化系統(tǒng)集成,其中:
1)、版本控制服務(wù)器:跟蹤記錄整個(gè)系統(tǒng)的開(kāi)發(fā)過(guò)程,能夠?qū)ρ邪l(fā)周期的代碼、文檔進(jìn)行更新、回滾、備份等版本控制;
2)、開(kāi)發(fā)編譯服務(wù)器:安裝有編譯工具,同時(shí)部署有項(xiàng)目的編譯腳本,能夠?qū)φ麄€(gè)項(xiàng)目的代碼進(jìn)行編譯和打包;
3)、系統(tǒng)構(gòu)建服務(wù)器:構(gòu)建策略的執(zhí)行者;能夠接收用戶(hù)自定義的構(gòu)建策略,觸發(fā)系統(tǒng)集成;
4)、系統(tǒng)運(yùn)行服務(wù)器:接收系統(tǒng)集成的安裝包,進(jìn)行安裝包的安裝以及自動(dòng)化測(cè)試用例腳本的執(zhí)行,并輸出用例執(zhí)行日志;
5)、郵件服務(wù)器:系統(tǒng)集成的匯報(bào)者,根據(jù)系統(tǒng)運(yùn)行服務(wù)器輸出的用例執(zhí)行日志發(fā)送郵件給構(gòu)建策略制定者,呈現(xiàn)系統(tǒng)集成的結(jié)果。
應(yīng)用該方法后,可以及時(shí)獲取項(xiàng)目開(kāi)發(fā)的質(zhì)量,保證代碼維持在健康,可用狀態(tài)。
實(shí)施例2
在實(shí)施例1的基礎(chǔ)上,本實(shí)施例所述方法實(shí)現(xiàn)架構(gòu)包括:
項(xiàng)目構(gòu)建服務(wù)器:是整個(gè)系統(tǒng)集成方法的管理者,負(fù)責(zé)接受構(gòu)建策略,并依次觸發(fā)代碼編譯,部署運(yùn)行和郵件發(fā)送;
開(kāi)發(fā)編譯服務(wù)器,負(fù)責(zé)部署有開(kāi)發(fā)環(huán)境、編譯腳本等,接收代碼編譯通知,然后進(jìn)行代碼更新,項(xiàng)目代碼編譯和安裝包歸檔,最終輸出可用的系統(tǒng)安裝包;
版本控制服務(wù)器:負(fù)責(zé)代碼的共享,更新,回滾和回溯,保證項(xiàng)目代碼的統(tǒng)一性;
系統(tǒng)運(yùn)行服務(wù)器:負(fù)責(zé)接受部署運(yùn)行通知,并根據(jù)系統(tǒng)安裝包依次進(jìn)行舊系統(tǒng)清理、新系統(tǒng)安裝、自動(dòng)化用例腳本執(zhí)行,最終輸出用例執(zhí)行日志;
郵件服務(wù)器:負(fù)責(zé)發(fā)送系統(tǒng)集成的結(jié)果,接收郵件發(fā)送通知,把用例執(zhí)行日志以郵件形式通知構(gòu)建策略制定者,完成系統(tǒng)集成的提醒功能。
實(shí)施例3
如圖1所示,在實(shí)施例2的基礎(chǔ)上,本實(shí)施例所述方法流程如下:
1、首先檢測(cè)定是否滿(mǎn)足定時(shí)構(gòu)建條件,如果滿(mǎn)足,項(xiàng)目構(gòu)建服務(wù)器發(fā)送代碼編譯通知給開(kāi)發(fā)編譯服務(wù)器;
2、開(kāi)發(fā)編譯服務(wù)器獲取所述項(xiàng)目的代碼、配置和文檔;
3、下載最新項(xiàng)目代碼,并記錄版本號(hào)以供編譯使用;
4、開(kāi)發(fā)編譯服務(wù)器根據(jù)編譯腳本,進(jìn)行項(xiàng)目編譯和安裝包打包,并以步驟(3)中的版本號(hào)進(jìn)行標(biāo)記;
5、編譯返回,通知項(xiàng)目構(gòu)建服務(wù)器;
6、項(xiàng)目構(gòu)建服務(wù)器發(fā)送部署運(yùn)行通知給系統(tǒng)運(yùn)行服務(wù)器;
7、系統(tǒng)運(yùn)行服務(wù)器接收到通知后,獲取最新系統(tǒng)安裝包,并依次執(zhí)行:
7.1、舊系統(tǒng)環(huán)境清理;
7.2、新系統(tǒng)安裝包安裝;
7.3、用例腳本執(zhí)行;
8、系統(tǒng)運(yùn)行服務(wù)器發(fā)送用例執(zhí)行日志給郵件服務(wù)器;
9、系統(tǒng)運(yùn)行服務(wù)器發(fā)送部署運(yùn)行結(jié)果給項(xiàng)目構(gòu)建服務(wù)器;
10、項(xiàng)目構(gòu)建服務(wù)器發(fā)送郵件發(fā)送通知給郵件服務(wù)器;
11、郵件服務(wù)器發(fā)送用例執(zhí)行日志給項(xiàng)目構(gòu)建策略制定者;
12、郵件服務(wù)器返回消息給項(xiàng)目構(gòu)建服務(wù)器,完成定時(shí)構(gòu)建的系統(tǒng)集成。
實(shí)施方式僅用于說(shuō)明本發(fā)明,而并非對(duì)本發(fā)明的限制,有關(guān)技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專(zhuān)利保護(hù)范圍應(yīng)由權(quán)利要求限定。