本發(fā)明涉及系統(tǒng)開發(fā)技術(shù)領(lǐng)域,特別是涉及一種自動(dòng)打包發(fā)布方法及裝置。
背景技術(shù):
隨著企業(yè)信息系統(tǒng)功能擴(kuò)充完善、開發(fā)過程不斷細(xì)化。常規(guī)的軟件開發(fā)生命周期中一般會(huì)涉及到開發(fā)環(huán)境、集成測(cè)試環(huán)境、確認(rèn)測(cè)試環(huán)境、生產(chǎn)環(huán)境至少4套環(huán)境,現(xiàn)有的工作模式下將程序的某一個(gè)版本從開發(fā)環(huán)境提取出來到最終部署再到生產(chǎn)環(huán)境中會(huì)耗費(fèi)大量的時(shí)間,浪費(fèi)大量的人力資源,而且容易出現(xiàn)問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種自動(dòng)打包發(fā)布方法及裝置,目的在于解決實(shí)際開發(fā)過程中代碼規(guī)范執(zhí)行不到位、搭建測(cè)試環(huán)境周期長(zhǎng)、容易因人為原因?qū)е洛e(cuò)誤的問題。
為解決上述技術(shù)問題,本發(fā)明提供一種自動(dòng)打包發(fā)布方法,包括:
獲取用戶提交的代碼,檢查獲取到的代碼是否符合預(yù)設(shè)代碼規(guī)范;
如果檢查通過,則接收編譯請(qǐng)求,采用從指定的版本控制服務(wù)器下載的文件進(jìn)行編譯打包,打包后上傳到所述版本控制服務(wù)器上;
將程序包從所述版本控制服務(wù)器上下載到集成測(cè)試服務(wù)器中,通過預(yù)設(shè)的腳本啟動(dòng)應(yīng)用程序;
調(diào)用相應(yīng)的測(cè)試程序,對(duì)系統(tǒng)進(jìn)行測(cè)試。
可選地,在所述檢查獲取到的代碼是否符合預(yù)設(shè)代碼規(guī)范之后還包括:
如果檢測(cè)不通過,則向用戶發(fā)送提示文件存在問題的提示信息,所述提示信息中包含不符合規(guī)范的原因。
可選地,所述采用從指定的版本控制服務(wù)器下載的文件進(jìn)行編譯打包,打包后上傳到所述版本控制服務(wù)器上包括:
采用從指定的版本控制服務(wù)器下載的文件進(jìn)行編譯;
判斷編譯是否成功;
如果是,則進(jìn)行代碼打包;如果否,則向用戶發(fā)送是否進(jìn)行人工觸發(fā)打包的通知。
可選地,所述調(diào)用相應(yīng)的測(cè)試程序,對(duì)系統(tǒng)進(jìn)行測(cè)試包括:
分別啟動(dòng)功能測(cè)試腳本、性能測(cè)試腳本以及安全測(cè)試腳本,對(duì)系統(tǒng)進(jìn)行功能、性能以及安全的測(cè)試,對(duì)應(yīng)生成功能測(cè)試結(jié)果、性能測(cè)試結(jié)果以及安全測(cè)試結(jié)果信息。
可選地,還包括:
將所述功能測(cè)試結(jié)果、性能測(cè)試結(jié)果以及安全測(cè)試結(jié)果信息通過郵件方式發(fā)送至預(yù)設(shè)的聯(lián)系用戶。
本發(fā)明還提供了一種自動(dòng)打包發(fā)布裝置,包括:
靜態(tài)代碼檢查模塊,用于獲取用戶提交的代碼,檢查獲取到的代碼是否符合預(yù)設(shè)代碼規(guī)范;
編譯打包模塊,用于在所述靜態(tài)代碼檢查模塊檢查所述代碼通過后,接收編譯請(qǐng)求,采用從指定的版本控制服務(wù)器下載的文件進(jìn)行編譯打包,打包后上傳到所述版本控制服務(wù)器上;
部署模塊,用于將程序包從所述版本控制服務(wù)器上下載到集成測(cè)試服務(wù)器中,通過預(yù)設(shè)的腳本啟動(dòng)應(yīng)用程序;
測(cè)試模塊,用于調(diào)用相應(yīng)的測(cè)試程序,對(duì)系統(tǒng)進(jìn)行測(cè)試。
可選地,還包括:
提示模塊,用于在所述靜態(tài)代碼檢查模塊檢查獲取到的代碼不符合預(yù)設(shè)代碼規(guī)范之后,向用戶發(fā)送提示文件存在問題的提示信息,所述提示信息中包含不符合規(guī)范的原因。
可選地,所述編譯打包模塊具體用于:
采用從指定的版本控制服務(wù)器下載的文件進(jìn)行編譯;判斷編譯是否成功;如果是,則進(jìn)行代碼打包;如果否,則向用戶發(fā)送是否進(jìn)行人工觸發(fā)打包的通知。
可選地,所述測(cè)試模塊具體用于:
分別啟動(dòng)功能測(cè)試腳本、性能測(cè)試腳本以及安全測(cè)試腳本,對(duì)系統(tǒng)進(jìn)行功能、性能以及安全的測(cè)試,對(duì)應(yīng)生成功能測(cè)試結(jié)果、性能測(cè)試結(jié)果以及安全測(cè)試結(jié)果信息。
可選地,還包括:
結(jié)果發(fā)送模塊,用于將所述功能測(cè)試結(jié)果、性能測(cè)試結(jié)果以及安全測(cè)試結(jié)果信息通過郵件方式發(fā)送至預(yù)設(shè)的聯(lián)系用戶。
本發(fā)明所提供的自動(dòng)打包發(fā)布方法及裝置,通過獲取用戶提交的代碼,檢查獲取到的代碼是否符合預(yù)設(shè)代碼規(guī)范;如果檢查通過,則接收編譯請(qǐng)求,采用從指定的版本控制服務(wù)器下載的文件進(jìn)行編譯打包,打包后上傳到版本控制服務(wù)器上;將程序包從版本控制服務(wù)器上下載到集成測(cè)試服務(wù)器中,通過預(yù)設(shè)的腳本啟動(dòng)應(yīng)用程序;調(diào)用相應(yīng)的測(cè)試程序,對(duì)系統(tǒng)進(jìn)行測(cè)試。本申請(qǐng)實(shí)現(xiàn)了軟件代碼提交、打包到部署的全自動(dòng)化控制,提高了軟件開發(fā)運(yùn)維效率和部署的效率,減少了因人為原因?qū)е孪到y(tǒng)出現(xiàn)問題的可能性。
附圖說明
為了更清楚的說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明所提供的自動(dòng)打包發(fā)布方法的一種具體實(shí)施方式的流程圖;
圖2為本發(fā)明所提供的自動(dòng)打包發(fā)布方法中代碼檢查過程示意圖;
圖3為本發(fā)明所提供的自動(dòng)打包發(fā)布方法中編譯打包過程示意圖;
圖4為本發(fā)明所提供的自動(dòng)打包發(fā)布方法中部署過程示意圖;
圖5為本發(fā)明所提供的自動(dòng)打包發(fā)布方法中自動(dòng)測(cè)試過程示意圖;
圖6為本發(fā)明實(shí)施例提供的自動(dòng)打包發(fā)布裝置的結(jié)構(gòu)框圖;
圖7為本發(fā)明所提供的自動(dòng)打包發(fā)布裝置的系統(tǒng)整體部署架構(gòu)示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明。顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明所提供的自動(dòng)打包發(fā)布方法的一種具體實(shí)施方式的流程圖如圖1所示,該方法包括:
步驟S101:獲取用戶提交的代碼,檢查獲取到的代碼是否符合預(yù)設(shè)代碼規(guī)范;
步驟S102:如果檢查通過,則接收編譯請(qǐng)求,采用從指定的版本控制服務(wù)器下載的文件進(jìn)行編譯打包,打包后上傳到所述版本控制服務(wù)器上;
步驟S103:將程序包從所述版本控制服務(wù)器上下載到集成測(cè)試服務(wù)器中,通過預(yù)設(shè)的腳本啟動(dòng)應(yīng)用程序;
步驟S104:調(diào)用相應(yīng)的測(cè)試程序,對(duì)系統(tǒng)進(jìn)行測(cè)試。
本發(fā)明所提供的自動(dòng)打包發(fā)布方法,通過獲取用戶提交的代碼,檢查獲取到的代碼是否符合預(yù)設(shè)代碼規(guī)范;如果檢查通過,則接收編譯請(qǐng)求,采用從指定的版本控制服務(wù)器下載的文件進(jìn)行編譯打包,打包后上傳到版本控制服務(wù)器上;將程序包從版本控制服務(wù)器上下載到集成測(cè)試服務(wù)器中,通過預(yù)設(shè)的腳本啟動(dòng)應(yīng)用程序;調(diào)用相應(yīng)的測(cè)試程序,對(duì)系統(tǒng)進(jìn)行測(cè)試。本申請(qǐng)實(shí)現(xiàn)了軟件代碼提交、打包到部署的全自動(dòng)化控制,提高了軟件開發(fā)運(yùn)維效率和部署的效率,減少了因人為原因?qū)е孪到y(tǒng)出現(xiàn)問題的可能性。
在上述實(shí)施例的基礎(chǔ)上,本發(fā)明所提供的自動(dòng)打包發(fā)布方法中在步驟S101檢查獲取到的代碼是否符合預(yù)設(shè)代碼規(guī)范之后還可以包括:
如果檢測(cè)不通過,則向用戶發(fā)送提示文件存在問題的提示信息,所述提示信息中包含不符合規(guī)范的原因。
當(dāng)開發(fā)工程師向版本控制服務(wù)器提交代碼時(shí),版本控制服務(wù)器接收到文件后可以具體通過hook(鉤子)技術(shù)調(diào)用靜態(tài)代碼檢查模塊,對(duì)代碼進(jìn)行規(guī)范性檢查,如果檢查通過則繼續(xù)處理文件,如果檢查不通過,則拒絕工程師提交的文件,同時(shí)提示工程師提交的文件哪里存在問題。如圖2本發(fā)明所提供的自動(dòng)打包發(fā)布方法中代碼檢查過程示意圖所示。
在上述實(shí)施例的基礎(chǔ)上,步驟S102采用從指定的版本控制服務(wù)器下載的文件進(jìn)行編譯打包,打包后上傳到所述版本控制服務(wù)器上的過程可以包括:
采用從指定的版本控制服務(wù)器下載的文件進(jìn)行編譯;
判斷編譯是否成功;
如果是,則進(jìn)行代碼打包;如果否,則向用戶發(fā)送是否進(jìn)行人工觸發(fā)打包的通知。
具體地,代碼提交通過后,由系統(tǒng)按照之前設(shè)置的時(shí)間或者人為發(fā)起代碼打包申請(qǐng),打包服務(wù)根據(jù)需求從代碼的版本控制服務(wù)器上下載文件,先進(jìn)行編譯,如果編譯通過則將編譯后的文件打成war包或者jar包,如果編譯失敗則將錯(cuò)誤信息反饋給調(diào)用人員。具體流程如圖3本發(fā)明所提供的自動(dòng)打包發(fā)布方法中編譯打包過程意圖所示。
代碼編譯通過后通過部署模塊將程序包從版本控制工具上下載到集成測(cè)試服務(wù)器中,然后通過實(shí)現(xiàn)設(shè)置好的腳本啟動(dòng)應(yīng)用程序。具體流程如圖4本發(fā)明所提供的自動(dòng)打包發(fā)布方法中部署過程示意圖所示。
在上述任一實(shí)施例的基礎(chǔ)上,調(diào)用相應(yīng)的測(cè)試程序,對(duì)系統(tǒng)進(jìn)行測(cè)試具體包括:
分別啟動(dòng)功能測(cè)試腳本、性能測(cè)試腳本以及安全測(cè)試腳本,對(duì)系統(tǒng)進(jìn)行功能、性能以及安全的測(cè)試,對(duì)應(yīng)生成功能測(cè)試結(jié)果、性能測(cè)試結(jié)果以及安全測(cè)試結(jié)果信息。
在此基礎(chǔ)上,還可以進(jìn)一步包括:
將所述功能測(cè)試結(jié)果、性能測(cè)試結(jié)果以及安全測(cè)試結(jié)果信息通過郵件方式發(fā)送至預(yù)設(shè)的聯(lián)系用戶。
自動(dòng)測(cè)試是在系統(tǒng)啟動(dòng)成功后調(diào)用相應(yīng)的測(cè)試程序,對(duì)系統(tǒng)進(jìn)行功能、性能和安全相關(guān)的測(cè)試。具體流程如圖5本發(fā)明所提供的自動(dòng)打包發(fā)布方法中自動(dòng)測(cè)試過程示意圖所示。
上述操作全部完成后,系統(tǒng)設(shè)置開發(fā)負(fù)責(zé)人會(huì)受到相應(yīng)的郵件通知,系統(tǒng)的各個(gè)環(huán)節(jié)出現(xiàn)的問題可以非常清楚的看到,測(cè)試通過的程序包可以通過版本控制服務(wù)器下載到生產(chǎn)環(huán)境中進(jìn)行更新操作,上述環(huán)節(jié)中幾乎都是自動(dòng)操作,減少了人為操作導(dǎo)致的丟文件或者其他錯(cuò)誤的可能性。極大地提升了打包、測(cè)試和發(fā)布的工作效率,降低了誤操作的風(fēng)險(xiǎn)。
下面對(duì)本發(fā)明實(shí)施例提供的自動(dòng)打包發(fā)布裝置進(jìn)行介紹,下文描述的自動(dòng)打包發(fā)布裝置與上文描述的自動(dòng)打包發(fā)布方法可相互對(duì)應(yīng)參照。
圖6為本發(fā)明實(shí)施例提供的自動(dòng)打包發(fā)布裝置的結(jié)構(gòu)框圖,參照?qǐng)D6自動(dòng)打包發(fā)布裝置可以包括:
靜態(tài)代碼檢查模塊100,用于獲取用戶提交的代碼,檢查獲取到的代碼是否符合預(yù)設(shè)代碼規(guī)范;
編譯打包模塊200,用于在所述靜態(tài)代碼檢查模塊檢查所述代碼通過后,接收編譯請(qǐng)求,采用從指定的版本控制服務(wù)器下載的文件進(jìn)行編譯打包,打包后上傳到所述版本控制服務(wù)器上;
部署模塊300,用于將程序包從所述版本控制服務(wù)器上下載到集成測(cè)試服務(wù)器中,通過預(yù)設(shè)的腳本啟動(dòng)應(yīng)用程序;
測(cè)試模塊400,用于調(diào)用相應(yīng)的測(cè)試程序,對(duì)系統(tǒng)進(jìn)行測(cè)試。
作為一種具體實(shí)施方式,本發(fā)明所提供的自動(dòng)打包發(fā)布裝置還可以進(jìn)一步包括:
提示模塊,用于在所述靜態(tài)代碼檢查模塊檢查獲取到的代碼不符合預(yù)設(shè)代碼規(guī)范之后,向用戶發(fā)送提示文件存在問題的提示信息,所述提示信息中包含不符合規(guī)范的原因。
可選地,所述編譯打包模塊具體用于:
采用從指定的版本控制服務(wù)器下載的文件進(jìn)行編譯;判斷編譯是否成功;如果是,則進(jìn)行代碼打包;如果否,則向用戶發(fā)送是否進(jìn)行人工觸發(fā)打包的通知。
在上述任一實(shí)施例的基礎(chǔ)上,本發(fā)明所提供的自動(dòng)打包發(fā)布裝置中,測(cè)試模塊可以具體用于:
分別啟動(dòng)功能測(cè)試腳本、性能測(cè)試腳本以及安全測(cè)試腳本,對(duì)系統(tǒng)進(jìn)行功能、性能以及安全的測(cè)試,對(duì)應(yīng)生成功能測(cè)試結(jié)果、性能測(cè)試結(jié)果以及安全測(cè)試結(jié)果信息。
本實(shí)施例中,本發(fā)明所提供的自動(dòng)打包發(fā)布裝置還可以進(jìn)一步包括:
結(jié)果發(fā)送模塊,用于將所述功能測(cè)試結(jié)果、性能測(cè)試結(jié)果以及安全測(cè)試結(jié)果信息通過郵件方式發(fā)送至預(yù)設(shè)的聯(lián)系用戶。
此外,配置系統(tǒng)中模塊所在服務(wù)器信息和相關(guān)規(guī)范的設(shè)置可以具體由服務(wù)配置管理模塊來配置;靜態(tài)代碼檢查模塊用于檢查程序員所提交代碼是否符合代碼規(guī)范,是否存在研發(fā)安全隱患,代碼是否存在潛在的性能問題;編譯打包模塊用于將代碼從版本控制服務(wù)器中下載下來編譯打包,打包后上傳到部署包的版本控制服務(wù)器上;部署模塊通過從部署包版本控制服務(wù)器下載編譯后的包,然后發(fā)布到tomcat或者weblogic等應(yīng)用服務(wù)器中間件上,并啟動(dòng)應(yīng)用程序;自動(dòng)測(cè)試模塊是在打包模塊啟動(dòng)完成后運(yùn)行實(shí)現(xiàn)錄制好的腳本,對(duì)系統(tǒng)進(jìn)行自動(dòng)測(cè)試,并將測(cè)試結(jié)果通過郵件的方式發(fā)送給相關(guān)負(fù)責(zé)人。
本發(fā)明所提供的自動(dòng)打包發(fā)布裝置的系統(tǒng)整體部署架構(gòu)示意圖如圖7所示。
通過本發(fā)明所提供的自動(dòng)打包發(fā)布裝置,解決了實(shí)際開發(fā)過程中代碼規(guī)范執(zhí)行不到位、搭建測(cè)試環(huán)境周期長(zhǎng)而且容易出現(xiàn)問題的實(shí)際問題,實(shí)現(xiàn)了軟件版本的自動(dòng)、穩(wěn)定、高效、安全的發(fā)布,極大地節(jié)約了時(shí)間和人力成本,提升了軟件部署升級(jí)的效率,減少了部署過程中的問題。
本說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其它實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同或相似部分互相參見即可。對(duì)于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法部分說明即可。
專業(yè)人員還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。
以上對(duì)本發(fā)明所提供的自動(dòng)打包發(fā)布方法以及裝置進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對(duì)本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。