欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種自動(dòng)監(jiān)控處理包編譯依賴(lài)變更的持續(xù)集成方法及系統(tǒng)與流程

文檔序號(hào):40580434發(fā)布日期:2025-01-07 20:20閱讀:4來(lái)源:國(guó)知局
一種自動(dòng)監(jiān)控處理包編譯依賴(lài)變更的持續(xù)集成方法及系統(tǒng)與流程

本發(fā)明涉及軟件源管理,具體涉及一種自動(dòng)監(jiān)控處理包編譯依賴(lài)變更的持續(xù)集成方法及系統(tǒng)。


背景技術(shù):

1、linux系統(tǒng)中的軟件源中的軟件包之間通常會(huì)存在依賴(lài)關(guān)系。例如在更新軟件源中的軟件包a時(shí),可能會(huì)導(dǎo)致依賴(lài)于該軟件包a的軟件包b的依賴(lài)關(guān)系發(fā)生變化。通常情況下,軟件包的維護(hù)者可能不會(huì)察覺(jué)到這種依賴(lài)關(guān)系的變化,導(dǎo)致軟件包b未能及時(shí)更新,這可能導(dǎo)致軟件包b無(wú)法安裝或使用,并進(jìn)一步影響整個(gè)軟件源的可用性。由于依賴(lài)關(guān)系的傳遞,單個(gè)軟件包的更新可能會(huì)對(duì)整個(gè)軟件源造成影響。例如,如果軟件包a依賴(lài)于軟件包b,而軟件包b依賴(lài)于軟件包c(diǎn),當(dāng)軟件包c(diǎn)更新后,軟件包a和b可能無(wú)法安裝。由于軟件包a和b可能又是其他軟件包的依賴(lài),這種依賴(lài)關(guān)系的傳遞可能導(dǎo)致軟件源中的許多軟件包無(wú)法使用,直到下一次大規(guī)模重建才能發(fā)現(xiàn),導(dǎo)致延時(shí)交付。

2、目前,有兩個(gè)開(kāi)源工具可用于編譯和監(jiān)控rpm包:koji和koschei。koji是一個(gè)功能強(qiáng)大的包編譯管理工具,使用mock作為底層環(huán)境來(lái)批量編譯軟件包。koschei是針對(duì)rpm包的持續(xù)集成服務(wù),主要用于自動(dòng)、持續(xù)的監(jiān)控指定軟件源內(nèi)部rpm包依賴(lài)關(guān)系的變化??墒褂胟oji來(lái)編譯和管理軟件包,同時(shí)利用koschei來(lái)監(jiān)控rpm包的依賴(lài)關(guān)系。雖然koschei可以發(fā)現(xiàn)軟件包依賴(lài)關(guān)系的改變,但它無(wú)法確認(rèn)該軟件包是否可以在源內(nèi)安裝。當(dāng)軟件包無(wú)法安裝時(shí),需要重新編譯以解決依賴(lài)關(guān)系的問(wèn)題,然而,koschei不能自動(dòng)生成軟件包的版本號(hào),也不能更新軟件包源代碼倉(cāng)庫(kù),更無(wú)法向koji提交真實(shí)編譯。


技術(shù)實(shí)現(xiàn)思路

1、本發(fā)明要解決的技術(shù)問(wèn)題:針對(duì)現(xiàn)有技術(shù)的上述問(wèn)題,提供一種自動(dòng)監(jiān)控處理包編譯依賴(lài)變更的持續(xù)集成方法及系統(tǒng),本發(fā)明旨在針對(duì)基于koji和koschei管理軟件包的平臺(tái)解決koschei存在無(wú)法持續(xù)集成的問(wèn)題,進(jìn)而實(shí)現(xiàn)自動(dòng)、持續(xù)的解決軟件源中軟件包不可用的問(wèn)題。

2、為了解決上述技術(shù)問(wèn)題,本發(fā)明采用的技術(shù)方案為:

3、一種自動(dòng)監(jiān)控處理包編譯依賴(lài)變更的持續(xù)集成方法,包括下述步驟:

4、通過(guò)koschei追蹤koji并解析軟件源的依賴(lài)關(guān)系變化;

5、分別將解析出所有依賴(lài)改變的軟件包依次在軟件源模擬安裝;

6、為不可在軟件源模擬安裝的軟件包調(diào)度創(chuàng)建真實(shí)編譯任務(wù),對(duì)真實(shí)編譯任務(wù)進(jìn)行預(yù)處理生成軟件包的信息并更新代碼倉(cāng)庫(kù)再向koji提交;

7、通過(guò)koschei輪詢(xún)同步koji中真實(shí)編譯任務(wù)的執(zhí)行狀態(tài),如果真實(shí)編譯任務(wù)失敗次數(shù)達(dá)到閾值則創(chuàng)建一個(gè)通知任務(wù)以用于提醒人工介入處理。

8、可選地,所述通過(guò)koschei追蹤koji并解析軟件源的依賴(lài)關(guān)系變化包括:通過(guò)koschei的倉(cāng)庫(kù)解析服務(wù)repo_resolver輪詢(xún)同步koji的軟件源,解析新的軟件源,以及對(duì)應(yīng)的軟件包,并分析所有軟件包的依賴(lài)關(guān)系,從而得到所有依賴(lài)改變的軟件包。

9、可選地,所述分別將解析出所有依賴(lài)改變的軟件包依次在軟件源模擬安裝時(shí),包括針對(duì)解析出所有依賴(lài)改變的軟件包進(jìn)行遍歷,且對(duì)遍歷得到的軟件包的處理包括:

10、判斷該軟件包存在依賴(lài)改變是否成立,若不成立則結(jié)束并返回繼續(xù)遍歷;

11、判斷該軟件包是否可在軟件源模擬安裝,如果可在軟件源模擬安裝則結(jié)束并返回繼續(xù)遍歷;否則將該軟件包作為不可在軟件源模擬安裝的軟件包存入任務(wù)調(diào)度數(shù)據(jù)庫(kù)中以用于為不可在軟件源模擬安裝的軟件包創(chuàng)建真實(shí)編譯任務(wù)。

12、可選地,所述判斷該軟件包是否可在軟件源模擬安裝時(shí),如果不可在軟件源模擬安裝包括:

13、檢查該軟件包是否已經(jīng)存在未完成的用于調(diào)度創(chuàng)建真實(shí)編譯任務(wù)的調(diào)度任務(wù),如果不存在未完成的調(diào)度任務(wù)則跳轉(zhuǎn)下一步;否則結(jié)束并返回繼續(xù)遍歷;

14、判斷是否需要人工審核,如果需要人工審核則創(chuàng)建一個(gè)人工審核任務(wù)以用于提醒人工介入處理,結(jié)束并返回繼續(xù)遍歷;否則跳轉(zhuǎn)下一步;

15、判斷該軟件包的真實(shí)編譯任務(wù)提交到koji的次數(shù)是否已經(jīng)超過(guò)預(yù)設(shè)閾值,如果超過(guò)預(yù)設(shè)閾值則創(chuàng)建一個(gè)人工審核任務(wù)以用于提醒人工介入處理,結(jié)束并返回繼續(xù)遍歷;否則跳轉(zhuǎn)下一步;

16、判斷最近預(yù)設(shè)時(shí)長(zhǎng)內(nèi)已有koschei提交過(guò)該軟件包的真實(shí)編譯任務(wù)給koji是否成立,若成立則創(chuàng)建一個(gè)人工審核任務(wù)以用于提醒人工介入處理,結(jié)束并返回繼續(xù)遍歷;否則將該軟件包作為不可在軟件源模擬安裝的軟件包存入任務(wù)調(diào)度數(shù)據(jù)庫(kù)中以用于為不可在軟件源模擬安裝的軟件包創(chuàng)建真實(shí)編譯任務(wù)。

17、可選地,所述為不可在軟件源模擬安裝的軟件包調(diào)度創(chuàng)建真實(shí)編譯任務(wù),對(duì)真實(shí)編譯任務(wù)進(jìn)行預(yù)處理生成軟件包的信息并更新代碼倉(cāng)庫(kù)再向koji提交包括:

18、讀取任務(wù)調(diào)度數(shù)據(jù)庫(kù)以獲取需要提交真實(shí)編譯的真實(shí)編譯任務(wù)數(shù)據(jù);

19、判斷任務(wù)調(diào)度數(shù)據(jù)庫(kù)是否存在未提交的真實(shí)編譯任務(wù),如果存在則獲取未提交的真實(shí)編譯任務(wù)跳轉(zhuǎn)下一步,如果不存在則退出以等待下一次調(diào)度;

20、判斷未提交的真實(shí)編譯任務(wù)的軟件包是否為可在軟件源模擬安裝的軟件包,若為可在軟件源模擬安裝的軟件包則更新未提交的真實(shí)編譯任務(wù)為已完成,退出;否則跳轉(zhuǎn)下一步;

21、判斷任務(wù)調(diào)度數(shù)據(jù)庫(kù)是否存在未發(fā)送的用于提醒人工介入處理的任務(wù)單,如果存在未發(fā)送的用于提醒人工介入處理的任務(wù)單則創(chuàng)建任務(wù)單、告警通知情況的消息報(bào)告,退出以等待下一次調(diào)度;否則跳轉(zhuǎn)下一步;

22、判斷任務(wù)調(diào)度數(shù)據(jù)庫(kù)是否存在未解決的任務(wù)單,如果存在未解決的任務(wù)單,則退出以等待下一次調(diào)度;否則跳轉(zhuǎn)下一步;

23、獲取軟件包在koji上所有標(biāo)識(shí)符nvr以及文件大小,所述標(biāo)識(shí)符nvr包括軟件名、版本和發(fā)布號(hào);

24、根據(jù)軟件包在koji上所有標(biāo)識(shí)符nvr以及文件大小克隆軟件包的git源代碼;

25、根據(jù)軟件包的git源代碼在模擬的測(cè)試環(huán)境下生成軟件包的標(biāo)識(shí)符nvr,去重后更新軟件包的git源代碼,并執(zhí)行環(huán)境清理;

26、更新任務(wù)調(diào)度數(shù)據(jù)庫(kù)中的真實(shí)編譯任務(wù)的數(shù)據(jù)狀態(tài),向koji發(fā)送真實(shí)編譯請(qǐng)求以觸發(fā)koji執(zhí)行真實(shí)編譯。

27、可選地,所述判斷任務(wù)調(diào)度數(shù)據(jù)庫(kù)是否存在未解決的任務(wù)單時(shí),跳轉(zhuǎn)下一步之前還包括判斷當(dāng)前是否為預(yù)設(shè)的繁忙執(zhí)行時(shí)間,若不是預(yù)設(shè)的繁忙執(zhí)行時(shí)間,則跳轉(zhuǎn)下一步;若是預(yù)設(shè)的繁忙執(zhí)行時(shí)間,則退出以等待下一次調(diào)度。

28、可選地,所述通過(guò)koschei輪詢(xún)同步koji中真實(shí)編譯任務(wù)的執(zhí)行狀態(tài)時(shí),還包括更新編譯數(shù)據(jù)庫(kù)中的編譯狀態(tài)、軟件包的標(biāo)識(shí)符nvr,以及更新調(diào)度任務(wù)數(shù)據(jù)庫(kù)中的任務(wù)信息,所述任務(wù)信息包括koji真實(shí)編譯任務(wù)的執(zhí)行狀態(tài)和用于提醒人工介入處理的任務(wù)單的發(fā)送狀態(tài)信息。

29、此外,本發(fā)明還提供一種自動(dòng)監(jiān)控處理包編譯依賴(lài)變更的持續(xù)集成系統(tǒng),包括相互連接的微處理器和存儲(chǔ)器,所述微處理器被編程或配置以執(zhí)行所述自動(dòng)監(jiān)控處理包編譯依賴(lài)變更的持續(xù)集成方法。

30、此外,本發(fā)明還提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)程序或指令,該計(jì)算機(jī)程序或指令被編程或配置以通過(guò)處理器執(zhí)行所述自動(dòng)監(jiān)控處理包編譯依賴(lài)變更的持續(xù)集成方法。

31、此外,本發(fā)明還提供一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序或指令,該計(jì)算機(jī)程序或指令被編程或配置以通過(guò)處理器執(zhí)行所述自動(dòng)監(jiān)控處理包編譯依賴(lài)變更的持續(xù)集成方法。

32、和現(xiàn)有技術(shù)相比,本發(fā)明主要具有下述優(yōu)點(diǎn):?本發(fā)明包括通過(guò)koschei追蹤koji并解析軟件源的依賴(lài)關(guān)系變化;將依賴(lài)改變的軟件包依次在軟件源中模擬安裝,對(duì)模擬安裝失敗的軟件包創(chuàng)建真實(shí)編譯任務(wù);對(duì)真實(shí)編譯任務(wù)進(jìn)行預(yù)處理后向koji提交真實(shí)編譯任務(wù);使用koschei的polling服務(wù)輪詢(xún)同步koji中真實(shí)編譯任務(wù)的執(zhí)行狀態(tài),如果真實(shí)編譯任務(wù)失敗次數(shù)達(dá)到閾值則創(chuàng)建一個(gè)通知任務(wù)以用于提醒人工介入處理,本發(fā)明基于koji和koschei管理軟件包的平臺(tái)解決koschei存在無(wú)法持續(xù)集成的問(wèn)題,進(jìn)而實(shí)現(xiàn)自動(dòng)、持續(xù)的解決軟件源中軟件包不可用的問(wèn)題,而且本發(fā)明支持持續(xù)、自動(dòng)檢測(cè)軟件源中不可用的軟件包,可實(shí)現(xiàn)問(wèn)題及時(shí)發(fā)現(xiàn),本發(fā)明支持持續(xù)、自動(dòng)問(wèn)題處理、提交真實(shí)編譯,可實(shí)現(xiàn)軟件源及時(shí)修復(fù),本發(fā)明支持多種提交真實(shí)編譯方式,可適應(yīng)多樣化的軟件源處理需求,本發(fā)明支持失敗告警人工介入,以任務(wù)流處理閉環(huán)形式保證軟件源始終可靠。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
肃南| 大安市| 中方县| 泰安市| 宝坻区| 麟游县| 阜阳市| 电白县| 建瓯市| 茂名市| 松阳县| 沽源县| 咸宁市| 丰台区| 丹江口市| 南投县| 衢州市| 洪洞县| 嘉荫县| 镶黄旗| 玉门市| 柳州市| 晋州市| 昆明市| 山东省| SHOW| 万宁市| 松江区| 安宁市| 淳化县| 莆田市| 渝北区| 博客| 鄄城县| 南郑县| 泽州县| 鲁山县| 吉林市| 临猗县| 陆川县| 昌宁县|