本發(fā)明涉及項(xiàng)目代碼開發(fā)技術(shù)領(lǐng)域,特別涉及一種面向持續(xù)集成的告警系統(tǒng)及方法。
背景技術(shù):
持續(xù)集成是一種被業(yè)界認(rèn)可和廣泛使用的軟件開發(fā)實(shí)踐,是敏捷開發(fā)的必要組成,它能夠使開發(fā)團(tuán)隊(duì)的工作快速集成并驗(yàn)證,及時(shí)發(fā)現(xiàn)所開發(fā)軟件在集成中出現(xiàn)的問題。在實(shí)踐中,為了保證開發(fā)效率和質(zhì)量,往往規(guī)定持續(xù)集成構(gòu)建失敗,需要當(dāng)天解決,否則全組人員不能下班。對(duì)于持續(xù)集成的結(jié)果,不僅開發(fā)人員需要關(guān)心,而且各級(jí)管理人員也非常關(guān)切。然而,在實(shí)際應(yīng)用中,制約持續(xù)集成問題解決的關(guān)鍵在于如何將構(gòu)建結(jié)果及時(shí)有效地通知到相關(guān)的各類人員。
目前,監(jiān)控并反饋持續(xù)集成狀態(tài)的方法或裝置主要有三種方式:一是沒有任何展示和提醒方式,需要人員主動(dòng)關(guān)注Jenkins等持續(xù)集成軟件界面或查詢持續(xù)集成任務(wù)的構(gòu)建日志來確定持續(xù)集成任務(wù)的集成狀態(tài);二是持續(xù)集成工具集成了電子郵件發(fā)送模塊或即時(shí)通訊模塊,將持續(xù)集成任務(wù)的狀態(tài)通過郵件等方式推送給特定的人;三是利用電腦顯示器或者通過USB接口連接指示燈、音響等外部設(shè)備,及時(shí)反饋持續(xù)集成任務(wù)的集成狀態(tài);但是以上三種方法均存在缺陷。
第一種方法是人員主動(dòng)關(guān)注Jenkins等持續(xù)集成軟件的界面或查詢持續(xù)集成的構(gòu)建日志來查看持續(xù)集成任務(wù)的集成狀態(tài),這種方式會(huì)造成響應(yīng)速度變慢而且進(jìn)度不可控,問題修復(fù)周期延長,進(jìn)而影響持續(xù)集成的有效性和及時(shí)性,使得集成難以持續(xù)。
第二種方法是通過將電子郵件發(fā)送模塊或即時(shí)通訊模塊等集成到持續(xù)集成工具中,并將持續(xù)集成任務(wù)的結(jié)果通過郵件等方式推送給特定的人(即在持續(xù)集成軟件中固定配置相關(guān)聯(lián)系人的郵箱地址、辦公通信軟件地址和音箱播放特定音頻的方式來進(jìn)行通知)。例如,在持續(xù)集成系統(tǒng)及方法中包含一個(gè)定向發(fā)送模塊,用于將構(gòu)建錯(cuò)誤信息發(fā)往其所有者的信息接收端。通過郵件通知的方式將構(gòu)建結(jié)果發(fā)送給相應(yīng)開發(fā)人員,郵件中攜帶構(gòu)建結(jié)果文件,開發(fā)人員需要人工閱讀構(gòu)建結(jié)果文件,從中找出屬于自己的代碼錯(cuò)誤,然后進(jìn)行代碼修改。當(dāng)開發(fā)人員由于不在電腦旁或不能及時(shí)查看郵件時(shí),則不能及時(shí)發(fā)現(xiàn)這些郵件信息并快速解決問題,以致延誤處理時(shí)機(jī)。
第三種方法是利用電腦顯示器或者通過USB接口連接指示燈、音響等外部設(shè)備,及時(shí)反饋持續(xù)集成任務(wù)的集成狀態(tài)。例如,百度公司的QA小組提出了一種低成本的持續(xù)集成及時(shí)反饋解決方案,在這個(gè)方案中將一盞USB燈(Lavalamp)放在一臺(tái)靠近持續(xù)集成團(tuán)隊(duì)的臺(tái)式機(jī)上,通過安裝對(duì)應(yīng)的持續(xù)集成軟件的插件,能夠使用不同的顏色顯示指定持續(xù)集成任務(wù)的當(dāng)前狀態(tài),還能在持續(xù)集成失敗或部分失敗時(shí)以報(bào)警聲引起注意。同時(shí)提出可以通過持續(xù)集成軟件的插件,用顯示器和音響設(shè)備客串Lavalamp燈的視覺和聽覺效果。這種方法雖然能及時(shí)響應(yīng),但是需要將持續(xù)集成軟件服務(wù)器裝在一臺(tái)有聲卡設(shè)備的服務(wù)器上,所以對(duì)電腦的依賴性比較強(qiáng),可移植性較差。例如,當(dāng)持續(xù)集成服務(wù)器安裝在云主機(jī)或虛擬機(jī)上則無法使用,然而目前實(shí)踐中持續(xù)集成服務(wù)器恰恰普遍不在物理機(jī)上。此外,該方案需要被通知人員在場(chǎng)才能奏效,通知形式單一,限制了可用范圍。
此外,上述各種方案都不能很好地適用于規(guī)?;艚菹碌某掷m(xù)集成,對(duì)于組織級(jí)的敏捷實(shí)施來說,上述方案都顯得捉襟見肘。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種面向持續(xù)集成的告警系統(tǒng),以解決現(xiàn)有技術(shù)監(jiān)控并反饋持續(xù)集成狀態(tài)過程中存在的通知形式單一、對(duì)電腦的依賴性比較強(qiáng)、可移植性較差的技術(shù)問題。該系統(tǒng)包括:管理裝置,用于與持續(xù)集成系統(tǒng)進(jìn)行交互,實(shí)時(shí)獲取所述持續(xù)集成系統(tǒng)的任務(wù)集成狀態(tài)信息;將所述任務(wù)集成狀態(tài)信息與預(yù)設(shè)的通知告警規(guī)則中的告警狀態(tài)信息進(jìn)行匹配,在匹配成功時(shí),按照所述通知告警規(guī)則的通知方式和通知對(duì)象,對(duì)所述任務(wù)集成狀態(tài)信息生成通知告警指令;根據(jù)所述通知告警指令發(fā)出信息形式的告警通知;控制終端,用于根據(jù)所述通知告警指令發(fā)出聲和光形式的告警通知。
在一個(gè)實(shí)施例中,所述任務(wù)集成狀態(tài)信息,包括:任務(wù)集成的構(gòu)建結(jié)果和/或任務(wù)集成過程中的各個(gè)工作狀態(tài)。
在一個(gè)實(shí)施例中,預(yù)設(shè)的通知告警規(guī)則是用戶根據(jù)不同告警需求配置的,每個(gè)通知告警規(guī)則中包括所述告警狀態(tài)信息、與所述告警狀態(tài)信息對(duì)應(yīng)的通知對(duì)象和與所述告警狀態(tài)信息對(duì)應(yīng)的通知方式。
在一個(gè)實(shí)施例中,所述管理裝置,包括:管理模塊,用于運(yùn)行管理軟件與持續(xù)集成系統(tǒng)進(jìn)行交互,實(shí)時(shí)獲取所述持續(xù)集成系統(tǒng)的任務(wù)集成狀態(tài)信息;將所述任務(wù)集成狀態(tài)信息與預(yù)設(shè)的通知告警規(guī)則中的告警狀態(tài)信息進(jìn)行匹配,在匹配成功時(shí),按照所述通知告警規(guī)則的通知方式和通知對(duì)象,對(duì)所述任務(wù)集成狀態(tài)信息生成通知告警指令;第一通信模塊,用于根據(jù)所述通知告警指令發(fā)出信息形式的告警通知,將所述通知告警指令發(fā)送給所述控制終端;所述控制終端,包括:第二通信模塊、控制芯片、光形式的告警設(shè)備以及聲形式的告警設(shè)備,其中,所述第二通信模塊,用于接收所述通知告警指令;所述控制芯片,用于根據(jù)所述通知告警指令控制所述光形式的告警設(shè)備發(fā)出光形式的告警通知;根據(jù)所述通知告警指令控制所述聲形式的告警設(shè)備發(fā)出聲形式的告警通知。
在一個(gè)實(shí)施例中,所述管理模塊運(yùn)行PC(Personal Computer,個(gè)人計(jì)算機(jī))版本、APP(Application,客戶端應(yīng)用軟件)版本或WEB版本的管理軟件。
在一個(gè)實(shí)施例中,所述第一通信模塊,還用于接收面向持續(xù)集成的告警系統(tǒng)外的終端發(fā)送的控制所述持續(xù)集成系統(tǒng)操作的控制指令;接收所述第二通信模塊發(fā)送的所述控制終端的工作狀態(tài)信息;所述第二通信模塊,還用于接收面向持續(xù)集成的告警系統(tǒng)外的終端發(fā)送的控制所述控制終端發(fā)出聲和光形式的告警通知的控制信息。
在一個(gè)實(shí)施例中,還包括:顯示器,用于根據(jù)所述通知告警指令顯示所述任務(wù)集成狀態(tài)信息;和/或,揚(yáng)聲器,用于根據(jù)所述通知告警指令播放音頻形式的告警通知。
在一個(gè)實(shí)施例中,所述控制終端,還包括:繼電器,用于連接告警設(shè)備。
在一個(gè)實(shí)施例中,所述控制終端,還包括:控制接口,用于連接告警設(shè)備。
本發(fā)明實(shí)施例還提供了一種面向持續(xù)集成的告警方法,以解決現(xiàn)有技術(shù)監(jiān)控并反饋持續(xù)集成狀態(tài)過程中存在的通知形式單一、對(duì)電腦的依賴性比較強(qiáng)、可移植性較差的技術(shù)問題。該方法包括:與持續(xù)集成系統(tǒng)進(jìn)行交互,實(shí)時(shí)獲取所述持續(xù)集成系統(tǒng)的任務(wù)集成狀態(tài)信息;將所述任務(wù)集成狀態(tài)信息與預(yù)設(shè)的通知告警規(guī)則中的告警狀態(tài)信息進(jìn)行匹配,在匹配成功時(shí),按照所述通知告警規(guī)則的通知方式和通知對(duì)象,對(duì)所述任務(wù)集成狀態(tài)信息生成通知告警指令;根據(jù)所述通知告警指令發(fā)出聲、光以及信息形式的告警通知。
在一個(gè)實(shí)施例中,所述任務(wù)集成狀態(tài)信息,包括:任務(wù)集成的構(gòu)建結(jié)果和/或任務(wù)集成過程中的各個(gè)工作狀態(tài)。
在一個(gè)實(shí)施例中,預(yù)設(shè)的通知告警規(guī)則是用戶根據(jù)不同告警需求配置的,每個(gè)通知告警規(guī)則中包括所述告警狀態(tài)信息、與所述告警狀態(tài)信息對(duì)應(yīng)的通知對(duì)象和與所述告警狀態(tài)信息對(duì)應(yīng)的通知方式。
在本發(fā)明實(shí)施例中,通過管理裝置與持續(xù)集成系統(tǒng)進(jìn)行交互,來實(shí)時(shí)獲取持續(xù)集成系統(tǒng)的任務(wù)集成狀態(tài)信息,并將任務(wù)集成狀態(tài)信息與預(yù)設(shè)的通知告警規(guī)則中的告警狀態(tài)信息進(jìn)行匹配,在匹配成功時(shí),按照通知告警規(guī)則的通知方式和通知對(duì)象,對(duì)任務(wù)集成狀態(tài)信息生成通知告警指令,最后,管理裝置根據(jù)通知告警指令發(fā)出信息形式的告警通知,控制終端根據(jù)通知告警指令發(fā)出聲和光形式的告警通知,實(shí)現(xiàn)了可以結(jié)合聲光電同時(shí)發(fā)出不同形式的告警通知,以使得不同開發(fā)人員可以及時(shí)、有效地接收到各自所關(guān)心的告警通知,也提高了該面向持續(xù)集成的告警系統(tǒng)的可用范圍。同時(shí),由于是通過控制終端來實(shí)現(xiàn)聲和光形式的告警通知,該控制終端是獨(dú)立于持續(xù)集成系統(tǒng)的,使得持續(xù)集成系統(tǒng)的服務(wù)器可以裝在一臺(tái)沒有聲卡設(shè)備的服務(wù)器上,例如,持續(xù)集成服務(wù)器可以安裝在云主機(jī)或虛擬機(jī)上使用,而且控制終端的位置也不受限,從而降低了對(duì)電腦的依賴性,提高了可移植性,有利于適應(yīng)規(guī)?;艚菹露鄠€(gè)團(tuán)隊(duì)分布在多個(gè)辦公區(qū)的協(xié)調(diào)問題。
附圖說明
此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,并不構(gòu)成對(duì)本發(fā)明的限定。在附圖中:
圖1是本發(fā)明實(shí)施例提供的一種面向持續(xù)集成的告警系統(tǒng)的結(jié)構(gòu)框圖;
圖2是本發(fā)明實(shí)施例提供的一種控制終端的結(jié)構(gòu)示意圖;
圖3是本發(fā)明實(shí)施例提供的一種面向持續(xù)集成的告警系統(tǒng)的實(shí)施示意圖;
圖4是本發(fā)明實(shí)施例提供的一種面向持續(xù)集成的告警系統(tǒng)的工作流程圖;
圖5是本發(fā)明實(shí)施例提供的一種面向持續(xù)集成的告警方法的流程圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下面結(jié)合實(shí)施方式和附圖,對(duì)本發(fā)明做進(jìn)一步詳細(xì)說明。在此,本發(fā)明的示意性實(shí)施方式及其說明用于解釋本發(fā)明,但并不作為對(duì)本發(fā)明的限定。
在本發(fā)明實(shí)施例中,提供了一種面向持續(xù)集成的告警系統(tǒng),如圖1所示,該系統(tǒng)包括:
管理裝置101,用于與持續(xù)集成系統(tǒng)進(jìn)行交互,實(shí)時(shí)獲取所述持續(xù)集成系統(tǒng)的任務(wù)集成狀態(tài)信息;將所述任務(wù)集成狀態(tài)信息與預(yù)設(shè)的通知告警規(guī)則中的告警狀態(tài)信息進(jìn)行匹配,在匹配成功時(shí),按照所述通知告警規(guī)則的通知方式和通知對(duì)象,對(duì)所述任務(wù)集成狀態(tài)信息生成通知告警指令;根據(jù)所述通知告警指令發(fā)出信息形式的告警通知。
控制終端102,用于根據(jù)所述通知告警指令發(fā)出聲和光形式的告警通知。
由圖1所示可知,在本發(fā)明實(shí)施例中,通過管理裝置與持續(xù)集成系統(tǒng)進(jìn)行交互,來實(shí)時(shí)獲取持續(xù)集成系統(tǒng)的任務(wù)集成狀態(tài)信息,并將任務(wù)集成狀態(tài)信息與預(yù)設(shè)的通知告警規(guī)則中的告警狀態(tài)信息進(jìn)行匹配,在匹配成功時(shí),按照通知告警規(guī)則的通知方式和通知對(duì)象,對(duì)任務(wù)集成狀態(tài)信息生成通知告警指令,最后,管理裝置根據(jù)通知告警指令發(fā)出信息形式的告警通知,控制終端根據(jù)通知告警指令發(fā)出聲和光形式的告警通知,實(shí)現(xiàn)了可以結(jié)合聲光電同時(shí)發(fā)出不同形式的告警通知,以使得不同開發(fā)人員可以及時(shí)、有效地接收到各自所關(guān)心的告警通知,也提高了該面向持續(xù)集成的告警系統(tǒng)的可用范圍。同時(shí),由于是通過控制終端來實(shí)現(xiàn)聲和光形式的告警通知,該控制終端是獨(dú)立于持續(xù)集成系統(tǒng)的,使得持續(xù)集成系統(tǒng)的服務(wù)器可以裝在一臺(tái)沒有聲卡設(shè)備的服務(wù)器上,例如,持續(xù)集成服務(wù)器可以安裝在云主機(jī)或虛擬機(jī)上使用,而且控制終端的位置也不受限,從而降低了對(duì)電腦的依賴性,提高了可移植性,有利于適應(yīng)規(guī)模化敏捷下多個(gè)團(tuán)隊(duì)分布在多個(gè)辦公區(qū)的協(xié)調(diào)問題。
具體實(shí)施時(shí),上述任務(wù)集成狀態(tài)信息可以包括:任務(wù)集成的構(gòu)建結(jié)果和/或任務(wù)集成過程中的各個(gè)工作狀態(tài)。即該任務(wù)集成狀態(tài)信息不僅僅可以包括任務(wù)集成的構(gòu)建結(jié)果,例如,某任務(wù)集成的構(gòu)建失敗結(jié)果;還可以包括持續(xù)集成系統(tǒng)任務(wù)集成過程中的各個(gè)工作狀態(tài),例如,某個(gè)任務(wù)集成的實(shí)時(shí)進(jìn)度狀態(tài)等,任務(wù)集成狀態(tài)信息的豐富使得開發(fā)人員可以在關(guān)注構(gòu)建結(jié)果的同時(shí)實(shí)時(shí)監(jiān)控持續(xù)集成系統(tǒng)的任務(wù)集成過程。
具體實(shí)施時(shí),為了實(shí)現(xiàn)可以隨時(shí)隨地的配置通知告警規(guī)則,針對(duì)不同告警需求實(shí)現(xiàn)定制化、便捷地、實(shí)時(shí)、有效地告警,在本實(shí)施例中,預(yù)設(shè)的通知告警規(guī)則是用戶可以根據(jù)不同告警需求配置的,例如,可以通過參數(shù)化配置的方式來配置通知告警規(guī)則。每個(gè)通知告警規(guī)則中包括所述告警狀態(tài)信息、與所述告警狀態(tài)信息對(duì)應(yīng)的通知對(duì)象和與所述告警狀態(tài)信息對(duì)應(yīng)的通知方式。例如,針對(duì)某個(gè)報(bào)警需求,可以先確定該通知告警規(guī)則中包括的告警狀態(tài)信息,例如,該告警狀態(tài)信息可以是構(gòu)建結(jié)果、任務(wù)集成過程中的某個(gè)工作狀態(tài)以及某個(gè)工作狀態(tài)的多次組合;然后對(duì)通知對(duì)象進(jìn)行分層、分角色地確定該告警狀態(tài)信息需要通知的對(duì)象,例如,該通知對(duì)象是個(gè)人還是一個(gè)群體,實(shí)現(xiàn)定向通知告警和范圍通知告警相結(jié)合;再根據(jù)告警狀態(tài)信息是否為緊急情況或通知對(duì)象的特性,確定通知方式,例如,通過聲、光以及信息形式同時(shí)向通知對(duì)象發(fā)出告警通知,具體的,信息形式可以通過發(fā)短信或郵件實(shí)現(xiàn),聲形式的告警通知可以通過蜂鳴器或語音電話實(shí)現(xiàn),光形式的告警通知可以通過報(bào)警燈實(shí)現(xiàn)。
具體的,配置完成的通知告警規(guī)則可以保存在“通知告警規(guī)則庫”當(dāng)中,同時(shí)“通知告警規(guī)則庫”中也可以有一些預(yù)置的常用規(guī)則供用戶使用,“通知告警規(guī)則庫”還可以存儲(chǔ)與通知告警規(guī)則相關(guān)可能的解決方案,以便需要時(shí)及時(shí)調(diào)用,使持續(xù)集成的問題及時(shí)得到解決。
具體實(shí)施時(shí),在本實(shí)施例中,所述管理裝置101,包括:管理模塊,用于運(yùn)行管理軟件與持續(xù)集成系統(tǒng)進(jìn)行交互,實(shí)時(shí)獲取所述持續(xù)集成系統(tǒng)的任務(wù)集成狀態(tài)信息;將所述任務(wù)集成狀態(tài)信息與預(yù)設(shè)的通知告警規(guī)則中的告警狀態(tài)信息進(jìn)行匹配,在匹配成功時(shí),按照所述通知告警規(guī)則的通知方式和通知對(duì)象,對(duì)所述任務(wù)集成狀態(tài)信息生成通知告警指令;第一通信模塊,用于根據(jù)所述通知告警指令發(fā)出信息形式的告警通知,將所述通知告警指令發(fā)送給所述控制終端;
如圖2所示,所述控制終端102,包括:第二通信模塊201、控制芯片202、光形式的告警設(shè)備以及聲形式的告警設(shè)備,其中,所述第二通信模塊201,用于接收所述通知告警指令;具體的,該第二通信模塊201可以是串口通信模塊。所述控制芯片202,用于根據(jù)所述通知告警指令控制所述光形式的告警設(shè)備發(fā)出光形式的告警通知;根據(jù)所述通知告警指令控制所述聲形式的告警設(shè)備發(fā)出聲形式的告警通知。具體的,控制芯片202作為控制終端102的核心,用于控制和協(xié)調(diào)控制終端上接口設(shè)備的運(yùn)行,該控制芯片202上集成完整的片上操作系統(tǒng)2012,來控制電子電路。如圖2所示,上述聲形式的告警設(shè)備可以是通過蜂鳴器接口204連接的蜂鳴器,上述光形式的告警設(shè)備可以是通過報(bào)警燈接口203連接的報(bào)警燈。
具體實(shí)施時(shí),為了便于擴(kuò)展控制終端102的外部設(shè)備,在本實(shí)施例中,上述控制終端102還包括:繼電器,用于連接告警設(shè)備,如圖2所示,該繼電器通過繼電器接口206連接在控制終端102上,該繼電器是一種電控制器件,用于片上操作系統(tǒng)擴(kuò)展控制外部設(shè)備。此外,上述控制終端102還包括:控制接口205,用于連接告警設(shè)備,該控制接口205作為控制終端102的預(yù)留控制接口,以便在需要時(shí),用戶可以隨時(shí)在控制終端102上擴(kuò)展裝配各種不同的外部告警設(shè)備。
具體實(shí)施時(shí),如圖2所示,上述控制終端102還可以包括控制面板207、電源模塊208、顯示模塊209、時(shí)鐘模塊2010、存儲(chǔ)模塊、驅(qū)動(dòng)模塊以及具備GPRS(General Packet Radio Service,通用分組無線服務(wù)技術(shù))和短消息雙通道傳輸數(shù)據(jù)功能的無線通信模塊2011等。
具體實(shí)施時(shí),上述控制終端102可通過USB(Universal Serial Bus,通用串行總線)接口連接到電腦等形式的管理裝置上,即插即拔,對(duì)電腦依賴性較低,可移植性較好??刂平K端102既能通過計(jì)算機(jī)接口,又能通過其他終端或?qū)S性O(shè)備與管理裝置通信。
具體實(shí)施時(shí),在本實(shí)施例中,所述第一通信模塊,還用于接收面向持續(xù)集成的告警系統(tǒng)外的終端(例如,手機(jī)、平板電腦等)發(fā)送的控制所述持續(xù)集成系統(tǒng)操作的控制指令,例如,面向持續(xù)集成的告警系統(tǒng)外的終端(例如,手機(jī)、平板電腦等)通過管理軟件實(shí)時(shí)查看所述持續(xù)集成系統(tǒng)中項(xiàng)目的構(gòu)建狀態(tài)與結(jié)果后,向第一通信模塊發(fā)送控制所述持續(xù)集成系統(tǒng)進(jìn)行“重新構(gòu)建”、“終止構(gòu)建”、“修改構(gòu)建方式”等操作的控制指令;接收所述第二通信模塊發(fā)送的所述控制終端的工作狀態(tài)信息;所述第二通信模塊,還用于接收面向持續(xù)集成的告警系統(tǒng)外的終端發(fā)送的控制所述控制終端發(fā)出聲和光形式的告警通知的控制信息,例如,第二通信模塊可以接收面向持續(xù)集成的告警系統(tǒng)外的終端發(fā)送的控制所述控制終端發(fā)出聲和光形式的告警通知的控制信息,具體的,該控制信息可以是關(guān)閉控制終端上報(bào)警燈和蜂鳴器等報(bào)警設(shè)備。
具體實(shí)施時(shí),所述管理模塊可以運(yùn)行PC版本、APP版本或WEB版本的管理軟件,以實(shí)現(xiàn)可以通過電腦、移動(dòng)終端等的接口與控制終端進(jìn)行通信功能。具體的,當(dāng)管理軟件為PC版本時(shí),上述管理裝置可以通過電腦實(shí)現(xiàn),當(dāng)管理軟件為APP版本或WEB版本時(shí),上述管理裝置可以通過手機(jī)、平板電腦等移動(dòng)終端實(shí)現(xiàn)。
具體實(shí)施時(shí),管理軟件可以存在兩種形式,管理軟件既可以是單獨(dú)的一個(gè)軟件,通過外部接口與持續(xù)集成軟件進(jìn)行交互,也可以作為持續(xù)集成軟件中的一個(gè)插件集成進(jìn)去。
具體實(shí)施時(shí),為了進(jìn)一步有效地發(fā)出告警通知,在本實(shí)施例中,上述面向持續(xù)集成的告警系統(tǒng)還包括:顯示器,用于根據(jù)所述通知告警指令顯示所述任務(wù)集成狀態(tài)信息;和/或,揚(yáng)聲器,用于根據(jù)所述通知告警指令播放音頻形式的告警通知。
具體實(shí)施時(shí),上述面向持續(xù)集成的告警系統(tǒng)可以通過如圖3所示的形式來實(shí)現(xiàn),在管理軟件為PC版本時(shí),通過PC機(jī)1來實(shí)現(xiàn)管理裝置的功能,即在PC機(jī)1上運(yùn)行PC版的管理軟件3,該管理軟件3與持續(xù)集成軟件進(jìn)行交互,獲取持續(xù)集成軟件的任務(wù)集成狀態(tài)信息生成通知告警指令,根據(jù)通知告警指令發(fā)送郵件和即時(shí)通信,或者根據(jù)通知告警指令觸發(fā)控制終端上的揚(yáng)聲器、警示燈等設(shè)備發(fā)出告警通知;同時(shí)可以在PC機(jī)1上運(yùn)行持續(xù)集成軟件2;在管理軟件為APP版本或WEB版本時(shí),通過手持終端設(shè)備來實(shí)現(xiàn)管理裝置的功能,例如,APP版本的管理軟件10和WEB版本的管理軟件11運(yùn)行在手持終端設(shè)備12上,手持終端設(shè)備12通過無線通信的方式與控制終端進(jìn)行交互,控制終端可以通過USB接口連接在PC機(jī)1上,手持終端設(shè)備12上運(yùn)行的管理軟件和PC機(jī)1上運(yùn)行的管理軟件均與持續(xù)集成軟件2交互,實(shí)時(shí)獲取持續(xù)集成系統(tǒng)的任務(wù)集成狀態(tài)信息,并生成通知告警指令,管理軟件可根據(jù)通知告警指令通過郵件、即時(shí)通信的方式發(fā)送信息形式的告警通知,并將通知告警指令發(fā)送給控制終端102,控制終端102根據(jù)通知告警指令通過報(bào)警燈5發(fā)出光形式的告警通知,通過蜂鳴器6發(fā)出聲形式的告警通知,此時(shí),控制終端102還連接了繼電器7和預(yù)留接口8,以便用戶可自由決定需要裝配的告警設(shè)備,簡(jiǎn)單易行,安全可靠;同時(shí),PC機(jī)1還可以將通知告警指令發(fā)送給顯示屏9,該顯示屏9可以內(nèi)置揚(yáng)聲器,顯示屏9根據(jù)通知告警指令顯示具體的任務(wù)集成狀態(tài)信息,揚(yáng)聲器播放音頻形式的告警通知,以實(shí)現(xiàn)通過聲光電手段的任意組合,來通知關(guān)心構(gòu)建結(jié)果的各層級(jí)人員。
具體實(shí)施時(shí),以下結(jié)合具體示例來說明上述面向持續(xù)集成的告警系統(tǒng)的工作方法,如圖4所示,該方法包括以下步驟:
S1:首先要選定一款適合本項(xiàng)目或團(tuán)隊(duì)的持續(xù)集成軟件,且此軟件需要是可以被本發(fā)明中的上述管理軟件支持的,如Jenkins等。
S2:持續(xù)集成是對(duì)開發(fā)的項(xiàng)目代碼的持續(xù)集成,所以這一步是將開發(fā)的項(xiàng)目代碼配置到持續(xù)集成軟件中,并且設(shè)定好什么樣的構(gòu)建結(jié)果需要進(jìn)行告警。
S3:本發(fā)明中的上述管理軟件存在兩種形式,它既可以是單獨(dú)的一個(gè)軟件,通過外部接口與持續(xù)集成軟件進(jìn)行交互,也可以作為持續(xù)集成軟件中的一個(gè)插件集成進(jìn)去??傊?,此步是連接上述管理軟件和持續(xù)集成軟件。
S4:配置上述管理軟件,如果要實(shí)現(xiàn)郵件通知、辦公系統(tǒng)通知等,那么需要將服務(wù)信息配置到上述管理軟件中,即在通知方式包括郵件通知、辦公系統(tǒng)通知等時(shí),將郵件地址等信息配置到上述管理軟件中。
S5:配置完成后對(duì)上述管理軟件進(jìn)行測(cè)試,包括PC版、APP版和WEB版,如果用不到某一版本也可不測(cè)試該版本。測(cè)試成功則執(zhí)行S6,測(cè)試失敗則回到S4修改配置。
S6:在上述管理軟件上配置通知告警規(guī)則,如某個(gè)構(gòu)建JOB的某個(gè)狀態(tài)通過怎么樣的通知方式通知給哪些人。其配置結(jié)果將保存在“通知告警規(guī)則庫”當(dāng)中,同時(shí)規(guī)則庫中也可以有一些預(yù)置的常用規(guī)則供用戶使用。本發(fā)明不僅可以對(duì)構(gòu)建失敗的結(jié)果進(jìn)行告警,而且還支持對(duì)其他狀態(tài)和多次的狀態(tài)組合進(jìn)行通知。
S7:根據(jù)S6配置的通知告警規(guī)則判斷是否需要外接設(shè)備,外接設(shè)備如本發(fā)明中控制終端和外接顯示屏等,如果需要外接設(shè)備,則執(zhí)行S8,如果不需要外接設(shè)備,則執(zhí)行S9。
S8:如果需要外接設(shè)備,則連接相應(yīng)的外接告警設(shè)備。如外接顯示屏和本發(fā)明中的控制終端等。
S9:一切準(zhǔn)備就緒后,對(duì)項(xiàng)目代碼持續(xù)構(gòu)建,上述管理軟件等待構(gòu)建結(jié)果并判斷是否觸發(fā)通知告警規(guī)則。
S10:若觸發(fā)通知告警規(guī)則,執(zhí)行S11,若不觸發(fā)通知告警規(guī)則,執(zhí)行S9。
S11:持續(xù)集成軟件的JOB構(gòu)建結(jié)果如果觸發(fā)通知告警規(guī)則,則執(zhí)行設(shè)置好的動(dòng)作,如郵件通知、即時(shí)通信軟件通知、短信通知、聲光告警、播放語音等。
S12:通知告警目的達(dá)成后,被通知人員可解除相關(guān)告警,并執(zhí)行相應(yīng)的改正措施。
基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例中還提供了一種面向持續(xù)集成的告警方法,如下面的實(shí)施例所述。由于面向持續(xù)集成的告警方法解決問題的原理與面向持續(xù)集成的告警系統(tǒng)相似,因此面向持續(xù)集成的告警方法的實(shí)施可以參見面向持續(xù)集成的告警系統(tǒng)的實(shí)施,重復(fù)之處不再贅述。以下所使用的,術(shù)語“單元”或者“模塊”可以實(shí)現(xiàn)預(yù)定功能的軟件和/或硬件的組合。盡管以下實(shí)施例所描述的裝置較佳地以軟件來實(shí)現(xiàn),但是硬件,或者軟件和硬件的組合的實(shí)現(xiàn)也是可能并被構(gòu)想的。
圖5是本發(fā)明實(shí)施例的面向持續(xù)集成的告警方法的流程圖,如圖5所示,該方法包括:
步驟501:與持續(xù)集成系統(tǒng)進(jìn)行交互,實(shí)時(shí)獲取所述持續(xù)集成系統(tǒng)的任務(wù)集成狀態(tài)信息;
步驟502:將所述任務(wù)集成狀態(tài)信息與預(yù)設(shè)的通知告警規(guī)則中的告警狀態(tài)信息進(jìn)行匹配,在匹配成功時(shí),按照所述通知告警規(guī)則的通知方式和通知對(duì)象,對(duì)所述任務(wù)集成狀態(tài)信息生成通知告警指令;
步驟503:根據(jù)所述通知告警指令發(fā)出聲、光以及信息形式的告警通知。
在一個(gè)實(shí)施例中,所述任務(wù)集成狀態(tài)信息,包括:任務(wù)集成的構(gòu)建結(jié)果和/或任務(wù)集成過程中的各個(gè)工作狀態(tài)。
在一個(gè)實(shí)施例中,預(yù)設(shè)的通知告警規(guī)則是用戶根據(jù)不同告警需求配置的,每個(gè)通知告警規(guī)則中包括所述告警狀態(tài)信息、與所述告警狀態(tài)信息對(duì)應(yīng)的通知對(duì)象和與所述告警狀態(tài)信息對(duì)應(yīng)的通知方式。
在本發(fā)明實(shí)施例中,通過管理裝置與持續(xù)集成系統(tǒng)進(jìn)行交互,來實(shí)時(shí)獲取持續(xù)集成系統(tǒng)的任務(wù)集成狀態(tài)信息,并將任務(wù)集成狀態(tài)信息與預(yù)設(shè)的通知告警規(guī)則中的告警狀態(tài)信息進(jìn)行匹配,在匹配成功時(shí),按照通知告警規(guī)則的通知方式和通知對(duì)象,對(duì)任務(wù)集成狀態(tài)信息生成通知告警指令,最后,管理裝置根據(jù)通知告警指令發(fā)出信息形式的告警通知,控制終端根據(jù)通知告警指令發(fā)出聲和光形式的告警通知,實(shí)現(xiàn)了可以結(jié)合聲光電同時(shí)發(fā)出不同形式的告警通知,以使得不同開發(fā)人員可以及時(shí)、有效地接收到各自所關(guān)心的告警通知,也提高了該面向持續(xù)集成的告警系統(tǒng)的可用范圍。同時(shí),由于是通過控制終端來實(shí)現(xiàn)聲和光形式的告警通知,該控制終端是獨(dú)立于持續(xù)集成系統(tǒng)的,使得持續(xù)集成系統(tǒng)的服務(wù)器可以裝在一臺(tái)沒有聲卡設(shè)備的服務(wù)器上,例如,持續(xù)集成服務(wù)器可以安裝在云主機(jī)或虛擬機(jī)上使用,而且控制終端的位置也不受限,從而降低了對(duì)電腦的依賴性,提高了可移植性,有利于適應(yīng)規(guī)模化敏捷下多個(gè)團(tuán)隊(duì)分布在多個(gè)辦公區(qū)的協(xié)調(diào)問題。
顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明實(shí)施例的各模塊或各步驟可以用通用的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明實(shí)施例不限制于任何特定的硬件和軟件結(jié)合。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明實(shí)施例可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。