本發(fā)明涉及計(jì)算機(jī),具體涉及一種流水線測(cè)試的方法和裝置。
背景技術(shù):
1、在開(kāi)發(fā)深度學(xué)習(xí)編譯器tensorturbo時(shí),需要搭建一套穩(wěn)定高效的持續(xù)集成(continuous?integration,ci)系統(tǒng)以保障代碼的質(zhì)量。
2、在現(xiàn)有技術(shù)中,在研發(fā)過(guò)程中直接在物理機(jī)或者kvm虛擬機(jī)里面安裝研發(fā)編譯器所依賴的環(huán)境,但是該依賴的環(huán)境比較復(fù)雜,而且容易受到構(gòu)建和測(cè)試運(yùn)行過(guò)程的影響而改變,使得在下一次運(yùn)行過(guò)程中,所述環(huán)境無(wú)法滿足測(cè)試需求;以及,整個(gè)ci流水線(pipeline)中包含了200多個(gè)模型測(cè)試以及多個(gè)算子測(cè)試,每次測(cè)試時(shí)需要完成整個(gè)cipipeline包括的全部測(cè)試任務(wù),導(dǎo)致測(cè)試時(shí)間長(zhǎng),影響研發(fā)合入代碼的速度,進(jìn)而影響了所述tensorturbo的研發(fā)效率,并且,ci?pipeline中測(cè)試任務(wù)較多,需要的服務(wù)器的資源也較多,提高了測(cè)試成本。
3、綜上所述,如何為測(cè)試任務(wù)提供穩(wěn)定的測(cè)試環(huán)境,并提高測(cè)試效率是目前需要解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明實(shí)施例提供了一種流水線測(cè)試的方法和裝置,可以為所述測(cè)試任務(wù)提供穩(wěn)定的測(cè)試環(huán)境,提高測(cè)試效率。
2、第一方面,本發(fā)明實(shí)施例提供了一種流水線測(cè)試的方法,該方法包括:
3、通過(guò)第一任務(wù)接收器獲取第一流水線中的至少一個(gè)測(cè)試任務(wù);
4、獲取所述至少一個(gè)測(cè)試任務(wù)的目標(biāo)容器鏡像;
5、根據(jù)所述目標(biāo)容器鏡像啟動(dòng)目標(biāo)容器;
6、在所述目標(biāo)容器中運(yùn)行所述至少一個(gè)測(cè)試任務(wù)。
7、可選的,所述通過(guò)第一任務(wù)接收器獲取第一流水線中的至少一個(gè)測(cè)試任務(wù),具體包括:
8、通過(guò)第一任務(wù)接收器從調(diào)度器中獲取第一流水線中的至少一個(gè)測(cè)試任務(wù)。
9、可選的,所述獲取所述至少一個(gè)測(cè)試任務(wù)的目標(biāo)容器鏡像,具體包括:
10、在容器鏡像倉(cāng)庫(kù)中獲取所述至少一個(gè)測(cè)試任務(wù)的目標(biāo)容器鏡像,其中,每個(gè)所述測(cè)試任務(wù)對(duì)應(yīng)的所述目標(biāo)容器鏡像保存在所述容器鏡像倉(cāng)庫(kù)中。
11、可選的,所述根據(jù)所述目標(biāo)容器鏡像啟動(dòng)目標(biāo)容器,具體包括:
12、根據(jù)所述目標(biāo)容器鏡像創(chuàng)建所述目標(biāo)容器;
13、啟動(dòng)所述目標(biāo)容器。
14、可選的,該方法還包括:
15、通過(guò)第二任務(wù)接收器獲取第一流水線中的至少一個(gè)測(cè)試任務(wù);或者,
16、通過(guò)所述第二任務(wù)接收器獲取至少一條第二流水線中的至少一個(gè)測(cè)試任務(wù),其中,所述第二任務(wù)接收器的數(shù)量為大于或等于0的正整數(shù)。
17、可選的,響應(yīng)于所述第一任務(wù)接收器所在的服務(wù)器的使用率大于設(shè)定閾值,該方法還包括:
18、所述第一任務(wù)接收器暫停接收所述第一流水線中的測(cè)試任務(wù)。
19、可選的,響應(yīng)于所述第一任務(wù)接收器在設(shè)定時(shí)間內(nèi)未接收到所述第一流水線中的測(cè)試任務(wù),該方法還包括:
20、所述第一任務(wù)接收器暫停接收所述第一流水線中的測(cè)試任務(wù),并開(kāi)啟所述至少一條第二流水線在所述服務(wù)器中的任務(wù)接收器。
21、第二方面,本發(fā)明實(shí)施例提供了一種流水線測(cè)試的方法,該方法包括:
22、接收到第一合并請(qǐng)求,其中,所述第一合并請(qǐng)求用于修改容器鏡像倉(cāng)庫(kù)中的鏡像文件;
23、根據(jù)所述第一合并請(qǐng)求修改容器鏡像倉(cāng)庫(kù)中的鏡像文件;
24、根據(jù)修改后的所述鏡像文件生成候選容器鏡像;
25、響應(yīng)于所述候選容器鏡像正確,根據(jù)所述候選容器鏡像更新所述容器代碼倉(cāng)庫(kù)中的容器鏡像。
26、第三方面,本發(fā)明實(shí)施例提供了一種流水線測(cè)試的方法,該方法包括:
27、接收第二合并請(qǐng)求,其中,所述第二合并請(qǐng)求用于修改生成動(dòng)態(tài)流水線的配置;
28、根據(jù)所述第二合并請(qǐng)求生成動(dòng)態(tài)流水線,其中,所述動(dòng)態(tài)流水線中包括部分測(cè)試任務(wù)或全部測(cè)試任務(wù);
29、觸發(fā)所述動(dòng)態(tài)流水線;
30、響應(yīng)于檢測(cè)到所述動(dòng)態(tài)流水線提交的系統(tǒng)消息符合設(shè)定格式,對(duì)所述動(dòng)態(tài)流水線進(jìn)行代碼檢查、代碼分析和任務(wù)數(shù)據(jù)包構(gòu)建,并將所述任務(wù)數(shù)據(jù)包保存到存儲(chǔ)服務(wù)中,其中,所述任務(wù)數(shù)據(jù)包中包括所述動(dòng)態(tài)流水線中準(zhǔn)備進(jìn)行測(cè)試的全部測(cè)試任務(wù)。
31、可選的,所述根據(jù)所述第二合并請(qǐng)求生成動(dòng)態(tài)流水線,具體包括:
32、根據(jù)所述第二合并請(qǐng)求在編譯器代碼倉(cāng)庫(kù)中修改動(dòng)態(tài)流水線的配置;
33、根據(jù)修改后的所述動(dòng)態(tài)流水線的配置生成動(dòng)態(tài)流水線,其中,所述動(dòng)態(tài)流水線中的測(cè)試任務(wù)與所述動(dòng)態(tài)流水線的配置對(duì)應(yīng)。
34、第四方面,本發(fā)明實(shí)施例提供了一種流水線測(cè)試的裝置,該裝置包括:
35、第一接收單元,用于通過(guò)第一任務(wù)接收器獲取第一流水線中的至少一個(gè)測(cè)試任務(wù);
36、所述第一接收單元還用于,獲取所述至少一個(gè)測(cè)試任務(wù)的目標(biāo)容器鏡像;
37、啟動(dòng)單元,用于根據(jù)所述目標(biāo)容器鏡像啟動(dòng)目標(biāo)容器;
38、第一處理單元,用于在所述目標(biāo)容器中運(yùn)行所述至少一個(gè)測(cè)試任務(wù)。
39、第五方面,本發(fā)明實(shí)施例提供了一種流水線測(cè)試的裝置,該裝置包括:
40、第二接收單元,用于接收到第一合并請(qǐng)求,其中,所述第一合并請(qǐng)求用于修改容器鏡像倉(cāng)庫(kù)中的鏡像文件;
41、修改單元,用于根據(jù)所述第一合并請(qǐng)求修改容器鏡像倉(cāng)庫(kù)中的鏡像文件;
42、第一生成單元,用于根據(jù)修改后的所述鏡像文件生成候選容器鏡像;
43、更新單元,響應(yīng)于所述候選容器鏡像正確,用于根據(jù)所述候選容器鏡像更新所述容器代碼倉(cāng)庫(kù)中的容器鏡像。
44、第六方面,本發(fā)明實(shí)施例提供了一種流水線測(cè)試的裝置,該裝置包括:
45、第三接收單元,用于接收第二合并請(qǐng)求,其中,所述第二合并請(qǐng)求用于修改生成動(dòng)態(tài)流水線的配置;
46、第二生成單元,用于根據(jù)所述第二合并請(qǐng)求生成動(dòng)態(tài)流水線,其中,所述動(dòng)態(tài)流水線中包括部分測(cè)試任務(wù)或全部測(cè)試任務(wù);
47、觸發(fā)單元,用于觸發(fā)所述動(dòng)態(tài)流水線;
48、第二處理單元,響應(yīng)于檢測(cè)到所述動(dòng)態(tài)流水線提交的系統(tǒng)消息符合設(shè)定格式,用于對(duì)所述動(dòng)態(tài)流水線進(jìn)行代碼檢查、代碼分析和任務(wù)數(shù)據(jù)包構(gòu)建,并將所述任務(wù)數(shù)據(jù)包保存到存儲(chǔ)服務(wù)中,其中,所述任務(wù)數(shù)據(jù)包中包括所述動(dòng)態(tài)流水線中準(zhǔn)備進(jìn)行測(cè)試的全部測(cè)試任務(wù)。
49、第七方面,本發(fā)明實(shí)施例提供了一種ci系統(tǒng),該系統(tǒng)包括:至少一個(gè)服務(wù)器、容器鏡像倉(cāng)庫(kù)、編譯器代碼倉(cāng)庫(kù)和存儲(chǔ)服務(wù)。
50、第八方面,本發(fā)明實(shí)施例提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)計(jì)算機(jī)程序指令,所述計(jì)算機(jī)程序指令在被處理器執(zhí)行時(shí)實(shí)現(xiàn)如第一方面、第一方面任一種可能、第二方面、第三方面和第三方面任一種可能中所述的方法。
51、第九方面,本發(fā)明實(shí)施例提供了一種電子設(shè)備,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器用于存儲(chǔ)一條或多條計(jì)算機(jī)程序指令,其中,所述一條或多條計(jì)算機(jī)程序指令被所述處理器執(zhí)行以實(shí)現(xiàn)如第一方面、第一方面任一種可能、第二方面、第三方面和第三方面任一種可能中所述的方法。
52、第十方面,本發(fā)明實(shí)施例提供了一種芯片,包括存儲(chǔ)器和處理核,所述存儲(chǔ)器用于存儲(chǔ)一條或多條計(jì)算機(jī)程序指令,其中,所述一條或多條計(jì)算機(jī)程序指令被所述處理核執(zhí)行以實(shí)現(xiàn)如第一方面、第一方面任一種可能、第二方面、第三方面和第三方面任一種可能中任一項(xiàng)所述的方法。
53、第十一方面,本發(fā)明實(shí)施例提供了一種板卡,所述板卡上包括所述第十方面的芯片。
54、第十二方面,本發(fā)明實(shí)施例提供了一種服務(wù)器,所述服務(wù)器上包括所述第十一方面的板卡。
55、本發(fā)明實(shí)施例通過(guò)第一任務(wù)接收器獲取第一流水線中的至少一個(gè)測(cè)試任務(wù);獲取所述至少一個(gè)測(cè)試任務(wù)的目標(biāo)容器鏡像;根據(jù)所述目標(biāo)容器鏡像啟動(dòng)目標(biāo)容器;在所述目標(biāo)容器中運(yùn)行所述至少一個(gè)測(cè)試任務(wù)。通過(guò)上述方法,可以通過(guò)目標(biāo)容器為所述測(cè)試任務(wù)提供穩(wěn)定的測(cè)試環(huán)境,避免測(cè)試環(huán)境不穩(wěn)定影響測(cè)試任務(wù)的測(cè)試,同時(shí),所述第一流水線中的測(cè)試任務(wù)可以動(dòng)態(tài)配置,提高了測(cè)試效率。