Intel图形库Mesa的持续集成
Mesa CI是Intel的一個(gè)持續(xù)集成系統(tǒng),用于運(yùn)行Mesa圖形庫的構(gòu)建和一致性測試套件。它運(yùn)行在200多個(gè)系統(tǒng)中,每天運(yùn)行數(shù)千萬次測試。
\\Mesa項(xiàng)目是OpenGL和Vulkan等圖形標(biāo)準(zhǔn)的OSS實(shí)現(xiàn)。Intel和AMD將其作為圖形驅(qū)動程序的基礎(chǔ)。它充當(dāng)圖形API和硬件驅(qū)動程序之間的轉(zhuǎn)換層。Mesa開發(fā)人員使用一個(gè)名為Mesa CI的框架進(jìn)行持續(xù)集成,特別是在他們的測試套件中。Mesa需要支持各種供應(yīng)商圖形驅(qū)動程序以及不同版本的API標(biāo)準(zhǔn)。這就需要一個(gè)全面的測試套件,它需要與每個(gè)提交一起運(yùn)行,以確保功能和性能。Piglit、dEQP、VK-GL-CTS和Crucibleare是一些在Mesa CI上運(yùn)行的測試套件。在最近的X Org開發(fā)者大會上,Mark Janes和Clayton Craft分享了一些關(guān)于Mesa CI的細(xì)節(jié)。
\\Mesa CI包括一組配置文件和一個(gè)可以在Jenkins上運(yùn)行的作業(yè)調(diào)度器及作業(yè)實(shí)現(xiàn)。它主要是用Python編寫的,其原則是“把最小化Jenkins中的配置作為Mesa CI最重要的設(shè)計(jì)考慮”。根據(jù)文檔,Mesa CI理論上可以運(yùn)行在任何CI基礎(chǔ)設(shè)施之上,而不僅僅是Jenkins。目前,它被用于開發(fā)測試、發(fā)布驗(yàn)證、Intel驅(qū)動程序模擬器的投產(chǎn)前(硬件)測試、性能測試和一致性測試套件的驗(yàn)證。典型的開發(fā)測試周轉(zhuǎn)時(shí)間是30分鐘,即使向主分支的一次提交觸發(fā)了數(shù)百萬個(gè)測試。自定義數(shù)據(jù)庫提供對測試歷史的即時(shí)訪問,系統(tǒng)還為公共基準(zhǔn)測試生成性能趨勢線。
\\Mesa CI創(chuàng)建于2014年,但人們認(rèn)識到Mesa自動化測試的好處比這要早。從那時(shí)起,發(fā)布過程就正規(guī)化了,并且一直在發(fā)展(PDF)。在之前的一篇文章(PDF)中,Janes分享了為Mesa建立持續(xù)集成的理念。將測試作為一等工件,其中包括對測試可靠性和運(yùn)行時(shí)間進(jìn)行優(yōu)先級排序。
\\?
\\圖片來源:https://xdc2018.x.org/slides/Mesa_Continuous_Integration_at_Intel.pdf
\\每個(gè)平臺都有一個(gè)單獨(dú)的CI配置文件,一些測試套件需要一個(gè)單獨(dú)的配置用于32位構(gòu)建。由提交引起的測試失敗會觸發(fā)一系列步驟,其中一些是手動的。失敗的測試被添加到CI配置的跳過列表中。不過,這并不是由開發(fā)人員完成的,也不知道這是否是因?yàn)闇y試框架沒有注解測試用例而導(dǎo)致它們被忽略了。JUnit和NUnit等常見測試套件都提供了這個(gè)特性。跳過列表中的測試仍然運(yùn)行,但失敗時(shí)不會報(bào)告。這可以避免在Bug修復(fù)之前損失測試覆蓋率。
\\當(dāng)在包含未修復(fù)的Bug的分支上開發(fā)特性時(shí),由于CI配置會跟蹤主分支,所以會導(dǎo)致構(gòu)建失敗。對于每個(gè)測試狀態(tài)更改,Mesa CI都會記錄導(dǎo)致這種情況的提交。在這種情況下,由于Bug修復(fù)會被推送到主分支,所以當(dāng)測試開始通過時(shí),它會記錄提交id。Mesa CI會檢查特性分支是否已經(jīng)修復(fù)。如果沒有,它就認(rèn)為測試狀態(tài)是錯(cuò)誤的,即預(yù)計(jì)測試會失敗。最終,舊的穩(wěn)定分支會在Mesa CI上運(yùn)行,因?yàn)樗鼈兙哂信c該分支上的源代碼一致的測試狀態(tài)CI配置。但是,對于舊的分支,測試仍然會失敗,測試機(jī)器上有硬件更新,而這些更新會影響所有分支。
\\Mesa CI的未來計(jì)劃包括在構(gòu)建執(zhí)行期間顯示日志和組件的狀態(tài),并允許開發(fā)人員對構(gòu)建進(jìn)行A/B比較。他們還可以使用公共儀表板。
\\查看英文原文:Continuous Integration at Intel for the Mesa Graphics Library
總結(jié)
以上是生活随笔為你收集整理的Intel图形库Mesa的持续集成的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 十年磨一剑!SACC带你领略企业大数据平
- 下一篇: Abp框架之执行Update-Datab