CI: add kdevops actions from 2025-04-17 #3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # SPDX-License-Identifier: GPL-2.0 OR copyleft-next-0.3.1 | |
| # | |
| # Run kdevops filesystem testing. | |
| name: Run fstests | |
| # ---------------------------- | |
| # Supporting manual dispatches | |
| # ---------------------------- | |
| # | |
| # We want to enable the option for users to manuall customize their tests. | |
| # This is supported in github through the "workflow_dispatch". In order to | |
| # allow for that a repository must have a .github/workflows/*.yml with a | |
| # workflow_dispatch the "Default branch" of the target kernel repository. | |
| # Typically this is "master" or "main", you whatever it is, you need that | |
| # brancht to have the github the .github/workflows/ with workflow_dispatch | |
| # enabled as below. | |
| # | |
| # -------------------------- | |
| # Supporting auto-push tests | |
| # -------------------------- | |
| # | |
| # By default we disable the push option for the default branch, because this | |
| # can trigger tests to run for all profiles. If the filesystem you want to test | |
| # has 20 profiles then that means using 20 guests for a single push. It is | |
| # best to then leave the discretion of *what* you want to test down to the | |
| # user using the CI interface through the manual dispatch: | |
| # | |
| # https://github.com/linux-kdevops/kdevops/blob/main/docs/kernel-ci/linux-filesystems-kdevops-CI-testing.md | |
| # | |
| # If you want to enable automatic tests for all profiles for your filesystem | |
| # though you can just remove the comments for push below, just be mindful of | |
| # the resources you will use for all your pushes. | |
| # | |
| # We enable auto-push by default on ext4 as the number of profiles are small | |
| # and the use case to test all profiles is more valuable than not. | |
| # | |
| on: | |
| push: | |
| branches: | |
| - '**' | |
| pull_request: | |
| branches: | |
| - '**' | |
| workflow_dispatch: # Add this for manual triggering of the workflow | |
| inputs: | |
| defconfig: | |
| description: "Select defconfig" | |
| required: false | |
| default: "all profiles" | |
| type: choice | |
| options: | |
| - "all profiles" | |
| - "ext4_1k" | |
| - "ext4_2k" | |
| - "ext4_4k" | |
| - "ext4_bigalloc16k_4k" | |
| - "ext4_bigalloc32k_4k" | |
| - "ext4_bigalloc64k_4k" | |
| - "ext4_bigalloc1024k_4k" | |
| - "ext4_advanced_features" | |
| soak: | |
| description: "Select soak duration" | |
| required: false | |
| default: "No soak" | |
| type: choice | |
| options: | |
| - "No soak" | |
| - "Low - 30 minutes" | |
| - "Mid - 1 hour" | |
| - "High - 2.5 hours" | |
| - "Pathological - 48 hours" | |
| group: | |
| description: "Which test group to use" | |
| required: false | |
| default: "auto" | |
| type: choice | |
| options: | |
| - "auto" | |
| - "all" | |
| - "quick" | |
| tests: | |
| description: "Select additional test coverage" | |
| required: false | |
| default: "all" | |
| type: choice | |
| options: | |
| - "all" | |
| - "custom" | |
| - "generic/001" | |
| - "generic/002" | |
| - "generic/003" | |
| - "generic/004" | |
| - "generic/005" | |
| - "generic/006" | |
| - "generic/007" | |
| - "generic/008" | |
| - "generic/009" | |
| - "generic/010" | |
| - "generic/011" | |
| - "generic/012" | |
| - "generic/013" | |
| - "generic/014" | |
| - "generic/015" | |
| - "generic/016" | |
| - "generic/017" | |
| - "generic/018" | |
| - "generic/019" | |
| - "generic/020" | |
| - "generic/021" | |
| - "generic/022" | |
| - "generic/023" | |
| - "generic/024" | |
| - "generic/025" | |
| - "generic/026" | |
| - "generic/027" | |
| - "generic/028" | |
| - "generic/029" | |
| - "generic/030" | |
| - "generic/031" | |
| - "generic/032" | |
| - "generic/033" | |
| - "generic/034" | |
| - "generic/035" | |
| - "generic/036" | |
| - "generic/037" | |
| - "generic/038" | |
| - "generic/039" | |
| - "generic/040" | |
| - "generic/041" | |
| - "generic/042" | |
| - "generic/043" | |
| - "generic/044" | |
| - "generic/045" | |
| - "generic/046" | |
| - "generic/047" | |
| - "generic/048" | |
| - "generic/049" | |
| - "generic/050" | |
| - "generic/051" | |
| - "generic/052" | |
| - "generic/053" | |
| - "generic/054" | |
| - "generic/055" | |
| - "generic/056" | |
| - "generic/057" | |
| - "generic/058" | |
| - "generic/059" | |
| - "generic/060" | |
| - "generic/061" | |
| - "generic/062" | |
| - "generic/063" | |
| - "generic/064" | |
| - "generic/065" | |
| - "generic/066" | |
| - "generic/067" | |
| - "generic/068" | |
| - "generic/069" | |
| - "generic/070" | |
| - "generic/071" | |
| - "generic/072" | |
| - "generic/073" | |
| - "generic/074" | |
| - "generic/075" | |
| - "generic/076" | |
| - "generic/077" | |
| - "generic/078" | |
| - "generic/079" | |
| - "generic/080" | |
| - "generic/081" | |
| - "generic/082" | |
| - "generic/083" | |
| - "generic/084" | |
| - "generic/085" | |
| - "generic/086" | |
| - "generic/087" | |
| - "generic/088" | |
| - "generic/089" | |
| - "generic/090" | |
| - "generic/091" | |
| - "generic/092" | |
| - "generic/093" | |
| - "generic/094" | |
| - "generic/095" | |
| - "generic/096" | |
| - "generic/097" | |
| - "generic/098" | |
| - "generic/099" | |
| - "generic/100" | |
| - "generic/101" | |
| - "generic/102" | |
| - "generic/103" | |
| - "generic/104" | |
| - "generic/105" | |
| - "generic/106" | |
| - "generic/107" | |
| - "generic/108" | |
| - "generic/109" | |
| - "generic/110" | |
| - "generic/111" | |
| - "generic/112" | |
| - "generic/113" | |
| - "generic/114" | |
| - "generic/115" | |
| - "generic/116" | |
| - "generic/117" | |
| - "generic/118" | |
| - "generic/119" | |
| - "generic/120" | |
| - "generic/121" | |
| - "generic/122" | |
| - "generic/123" | |
| - "generic/124" | |
| - "generic/125" | |
| - "generic/126" | |
| - "generic/127" | |
| - "generic/128" | |
| - "generic/129" | |
| - "generic/130" | |
| - "generic/131" | |
| - "generic/132" | |
| - "generic/133" | |
| - "generic/134" | |
| - "generic/135" | |
| - "generic/136" | |
| - "generic/137" | |
| - "generic/138" | |
| - "generic/139" | |
| - "generic/140" | |
| - "generic/141" | |
| - "generic/142" | |
| - "generic/143" | |
| - "generic/144" | |
| - "generic/145" | |
| - "generic/146" | |
| - "generic/147" | |
| - "generic/148" | |
| - "generic/149" | |
| - "generic/150" | |
| - "generic/151" | |
| - "generic/152" | |
| - "generic/153" | |
| - "generic/154" | |
| - "generic/155" | |
| - "generic/156" | |
| - "generic/157" | |
| - "generic/158" | |
| - "generic/159" | |
| - "generic/160" | |
| - "generic/161" | |
| - "generic/162" | |
| - "generic/163" | |
| - "generic/164" | |
| - "generic/165" | |
| - "generic/166" | |
| - "generic/167" | |
| - "generic/168" | |
| - "generic/169" | |
| - "generic/170" | |
| - "generic/171" | |
| - "generic/172" | |
| - "generic/173" | |
| - "generic/174" | |
| - "generic/175" | |
| - "generic/176" | |
| - "generic/177" | |
| - "generic/178" | |
| - "generic/179" | |
| - "generic/180" | |
| - "generic/181" | |
| - "generic/182" | |
| - "generic/183" | |
| - "generic/184" | |
| - "generic/185" | |
| - "generic/186" | |
| - "generic/187" | |
| - "generic/188" | |
| - "generic/189" | |
| - "generic/190" | |
| - "generic/191" | |
| - "generic/192" | |
| - "generic/193" | |
| - "generic/194" | |
| - "generic/195" | |
| - "generic/196" | |
| - "generic/197" | |
| - "generic/198" | |
| - "generic/199" | |
| - "generic/200" | |
| - "generic/201" | |
| - "generic/202" | |
| - "generic/203" | |
| - "generic/204" | |
| - "generic/205" | |
| - "generic/206" | |
| - "generic/207" | |
| - "generic/208" | |
| - "generic/209" | |
| - "generic/210" | |
| - "generic/211" | |
| - "generic/212" | |
| - "generic/213" | |
| - "generic/214" | |
| - "generic/215" | |
| - "generic/216" | |
| - "generic/217" | |
| - "generic/218" | |
| - "generic/219" | |
| - "generic/220" | |
| - "generic/221" | |
| - "generic/222" | |
| - "generic/223" | |
| - "generic/224" | |
| - "generic/225" | |
| - "generic/226" | |
| - "generic/227" | |
| - "generic/228" | |
| - "generic/229" | |
| - "generic/230" | |
| - "generic/231" | |
| - "generic/232" | |
| - "generic/233" | |
| - "generic/234" | |
| - "generic/235" | |
| - "generic/236" | |
| - "generic/237" | |
| - "generic/238" | |
| - "generic/239" | |
| - "generic/240" | |
| - "generic/241" | |
| - "generic/242" | |
| - "generic/243" | |
| - "generic/244" | |
| - "generic/245" | |
| - "generic/246" | |
| - "generic/247" | |
| - "generic/248" | |
| - "generic/249" | |
| - "generic/250" | |
| - "generic/251" | |
| - "generic/252" | |
| - "generic/253" | |
| - "generic/254" | |
| - "generic/255" | |
| - "generic/256" | |
| - "generic/257" | |
| - "generic/258" | |
| - "generic/259" | |
| - "generic/260" | |
| - "generic/261" | |
| - "generic/262" | |
| - "generic/263" | |
| - "generic/264" | |
| - "generic/265" | |
| - "generic/266" | |
| - "generic/267" | |
| - "generic/268" | |
| - "generic/269" | |
| - "generic/270" | |
| - "generic/271" | |
| - "generic/272" | |
| - "generic/273" | |
| - "generic/274" | |
| - "generic/275" | |
| - "generic/276" | |
| - "generic/277" | |
| - "generic/278" | |
| - "generic/279" | |
| - "generic/280" | |
| - "generic/281" | |
| - "generic/282" | |
| - "generic/283" | |
| - "generic/284" | |
| - "generic/285" | |
| - "generic/286" | |
| - "generic/287" | |
| - "generic/288" | |
| - "generic/289" | |
| - "generic/290" | |
| - "generic/291" | |
| - "generic/292" | |
| - "generic/293" | |
| - "generic/294" | |
| - "generic/295" | |
| - "generic/296" | |
| - "generic/297" | |
| - "generic/298" | |
| - "generic/299" | |
| - "generic/300" | |
| - "generic/301" | |
| - "generic/302" | |
| - "generic/303" | |
| - "generic/304" | |
| - "generic/305" | |
| - "generic/306" | |
| - "generic/307" | |
| - "generic/308" | |
| - "generic/309" | |
| - "generic/310" | |
| - "generic/311" | |
| - "generic/312" | |
| - "generic/313" | |
| - "generic/314" | |
| - "generic/315" | |
| - "generic/316" | |
| - "generic/317" | |
| - "generic/318" | |
| - "generic/319" | |
| - "generic/320" | |
| - "generic/321" | |
| - "generic/322" | |
| - "generic/323" | |
| - "generic/324" | |
| - "generic/325" | |
| - "generic/326" | |
| - "generic/327" | |
| - "generic/328" | |
| - "generic/329" | |
| - "generic/330" | |
| - "generic/331" | |
| - "generic/332" | |
| - "generic/333" | |
| - "generic/334" | |
| - "generic/335" | |
| - "generic/336" | |
| - "generic/337" | |
| - "generic/338" | |
| - "generic/339" | |
| - "generic/340" | |
| - "generic/341" | |
| - "generic/342" | |
| - "generic/343" | |
| - "generic/344" | |
| - "generic/345" | |
| - "generic/346" | |
| - "generic/347" | |
| - "generic/348" | |
| - "generic/349" | |
| - "generic/350" | |
| - "generic/351" | |
| - "generic/352" | |
| - "generic/353" | |
| - "generic/354" | |
| - "generic/355" | |
| - "generic/356" | |
| - "generic/357" | |
| - "generic/358" | |
| - "generic/359" | |
| - "generic/360" | |
| - "generic/361" | |
| - "generic/362" | |
| - "generic/363" | |
| - "generic/364" | |
| - "generic/371" | |
| - "generic/372" | |
| - "generic/373" | |
| - "generic/374" | |
| - "generic/375" | |
| - "generic/376" | |
| - "generic/377" | |
| - "generic/378" | |
| - "generic/379" | |
| - "generic/380" | |
| - "generic/381" | |
| - "generic/382" | |
| - "generic/383" | |
| - "generic/384" | |
| - "generic/385" | |
| - "generic/386" | |
| - "generic/387" | |
| - "generic/388" | |
| - "generic/389" | |
| - "generic/390" | |
| - "generic/391" | |
| - "generic/392" | |
| - "generic/393" | |
| - "generic/394" | |
| - "generic/395" | |
| - "generic/396" | |
| - "generic/397" | |
| - "generic/398" | |
| - "generic/399" | |
| - "generic/400" | |
| - "generic/401" | |
| - "generic/402" | |
| - "generic/403" | |
| - "generic/404" | |
| - "generic/405" | |
| - "generic/406" | |
| - "generic/407" | |
| - "generic/408" | |
| - "generic/409" | |
| - "generic/410" | |
| - "generic/411" | |
| - "generic/412" | |
| - "generic/413" | |
| - "generic/414" | |
| - "generic/415" | |
| - "generic/416" | |
| - "generic/417" | |
| - "generic/418" | |
| - "generic/419" | |
| - "generic/420" | |
| - "generic/421" | |
| - "generic/422" | |
| - "generic/423" | |
| - "generic/424" | |
| - "generic/425" | |
| - "generic/426" | |
| - "generic/427" | |
| - "generic/428" | |
| - "generic/429" | |
| - "generic/430" | |
| - "generic/431" | |
| - "generic/432" | |
| - "generic/433" | |
| - "generic/434" | |
| - "generic/435" | |
| - "generic/436" | |
| - "generic/437" | |
| - "generic/438" | |
| - "generic/439" | |
| - "generic/440" | |
| - "generic/441" | |
| - "generic/442" | |
| - "generic/443" | |
| - "generic/444" | |
| - "generic/445" | |
| - "generic/446" | |
| - "generic/447" | |
| - "generic/448" | |
| - "generic/449" | |
| - "generic/450" | |
| - "generic/451" | |
| - "generic/452" | |
| - "generic/453" | |
| - "generic/454" | |
| - "generic/455" | |
| - "generic/456" | |
| - "generic/457" | |
| - "generic/458" | |
| - "generic/459" | |
| - "generic/460" | |
| - "generic/461" | |
| - "generic/462" | |
| - "generic/463" | |
| - "generic/464" | |
| - "generic/465" | |
| - "generic/466" | |
| - "generic/467" | |
| - "generic/468" | |
| - "generic/469" | |
| - "generic/470" | |
| - "generic/471" | |
| - "generic/472" | |
| - "generic/473" | |
| - "generic/474" | |
| - "generic/475" | |
| - "generic/476" | |
| - "generic/477" | |
| - "generic/478" | |
| - "generic/479" | |
| - "generic/480" | |
| - "generic/481" | |
| - "generic/482" | |
| - "generic/483" | |
| - "generic/484" | |
| - "generic/485" | |
| - "generic/486" | |
| - "generic/487" | |
| - "generic/488" | |
| - "generic/489" | |
| - "generic/490" | |
| - "generic/491" | |
| - "generic/492" | |
| - "generic/493" | |
| - "generic/494" | |
| - "generic/495" | |
| - "generic/496" | |
| - "generic/497" | |
| - "generic/498" | |
| - "generic/499" | |
| - "generic/500" | |
| - "generic/501" | |
| - "generic/502" | |
| - "generic/503" | |
| - "generic/504" | |
| - "generic/505" | |
| - "generic/506" | |
| - "generic/507" | |
| - "generic/508" | |
| - "generic/509" | |
| - "generic/510" | |
| - "generic/511" | |
| - "generic/512" | |
| - "generic/513" | |
| - "generic/514" | |
| - "generic/515" | |
| - "generic/516" | |
| - "generic/517" | |
| - "generic/518" | |
| - "generic/519" | |
| - "generic/520" | |
| - "generic/521" | |
| - "generic/522" | |
| - "generic/523" | |
| - "generic/524" | |
| - "generic/525" | |
| - "generic/526" | |
| - "generic/527" | |
| - "generic/528" | |
| - "generic/529" | |
| - "generic/530" | |
| - "generic/531" | |
| - "generic/532" | |
| - "generic/533" | |
| - "generic/534" | |
| - "generic/535" | |
| - "generic/536" | |
| - "generic/537" | |
| - "generic/538" | |
| - "generic/539" | |
| - "generic/540" | |
| - "generic/541" | |
| - "generic/542" | |
| - "generic/543" | |
| - "generic/544" | |
| - "generic/545" | |
| - "generic/546" | |
| - "generic/547" | |
| - "generic/548" | |
| - "generic/549" | |
| - "generic/550" | |
| - "generic/551" | |
| - "generic/552" | |
| - "generic/553" | |
| - "generic/554" | |
| - "generic/555" | |
| - "generic/556" | |
| - "generic/557" | |
| - "generic/558" | |
| - "generic/559" | |
| - "generic/560" | |
| - "generic/561" | |
| - "generic/562" | |
| - "generic/563" | |
| - "generic/564" | |
| - "generic/565" | |
| - "generic/566" | |
| - "generic/567" | |
| - "generic/568" | |
| - "generic/569" | |
| - "generic/570" | |
| - "generic/571" | |
| - "generic/572" | |
| - "generic/573" | |
| - "generic/574" | |
| - "generic/575" | |
| - "generic/576" | |
| - "generic/577" | |
| - "generic/578" | |
| - "generic/579" | |
| - "generic/580" | |
| - "generic/581" | |
| - "generic/582" | |
| - "generic/583" | |
| - "generic/584" | |
| - "generic/585" | |
| - "generic/586" | |
| - "generic/587" | |
| - "generic/588" | |
| - "generic/589" | |
| - "generic/590" | |
| - "generic/591" | |
| - "generic/592" | |
| - "generic/593" | |
| - "generic/594" | |
| - "generic/595" | |
| - "generic/596" | |
| - "generic/597" | |
| - "generic/598" | |
| - "generic/599" | |
| - "generic/600" | |
| - "generic/601" | |
| - "generic/602" | |
| - "generic/603" | |
| - "generic/604" | |
| - "generic/605" | |
| - "generic/606" | |
| - "generic/607" | |
| - "generic/608" | |
| - "generic/609" | |
| - "generic/610" | |
| - "generic/611" | |
| - "generic/612" | |
| - "generic/613" | |
| - "generic/614" | |
| - "generic/615" | |
| - "generic/616" | |
| - "generic/617" | |
| - "generic/618" | |
| - "generic/619" | |
| - "generic/620" | |
| - "generic/621" | |
| - "generic/622" | |
| - "generic/623" | |
| - "generic/624" | |
| - "generic/625" | |
| - "generic/626" | |
| - "generic/627" | |
| - "generic/628" | |
| - "generic/629" | |
| - "generic/630" | |
| - "generic/631" | |
| - "generic/632" | |
| - "generic/633" | |
| - "generic/634" | |
| - "generic/635" | |
| - "generic/636" | |
| - "generic/637" | |
| - "generic/638" | |
| - "generic/639" | |
| - "generic/640" | |
| - "generic/641" | |
| - "generic/642" | |
| - "generic/643" | |
| - "generic/644" | |
| - "generic/645" | |
| - "generic/646" | |
| - "generic/647" | |
| - "generic/648" | |
| - "generic/649" | |
| - "generic/650" | |
| - "generic/651" | |
| - "generic/652" | |
| - "generic/653" | |
| - "generic/654" | |
| - "generic/655" | |
| - "generic/656" | |
| - "generic/657" | |
| - "generic/658" | |
| - "generic/659" | |
| - "generic/660" | |
| - "generic/661" | |
| - "generic/662" | |
| - "generic/663" | |
| - "generic/664" | |
| - "generic/665" | |
| - "generic/666" | |
| - "generic/667" | |
| - "generic/668" | |
| - "generic/669" | |
| - "generic/670" | |
| - "generic/671" | |
| - "generic/672" | |
| - "generic/673" | |
| - "generic/674" | |
| - "generic/675" | |
| - "generic/676" | |
| - "generic/677" | |
| - "generic/678" | |
| - "generic/679" | |
| - "generic/680" | |
| - "generic/681" | |
| - "generic/682" | |
| - "generic/683" | |
| - "generic/684" | |
| - "generic/685" | |
| - "generic/686" | |
| - "generic/687" | |
| - "generic/688" | |
| - "generic/689" | |
| - "generic/690" | |
| - "generic/691" | |
| - "generic/692" | |
| - "generic/693" | |
| - "generic/694" | |
| - "generic/695" | |
| - "generic/696" | |
| - "generic/697" | |
| - "generic/698" | |
| - "generic/699" | |
| - "generic/700" | |
| - "generic/701" | |
| - "generic/702" | |
| - "generic/703" | |
| - "generic/704" | |
| - "generic/705" | |
| - "generic/706" | |
| - "generic/707" | |
| - "generic/708" | |
| - "generic/709" | |
| - "generic/710" | |
| - "generic/711" | |
| - "generic/712" | |
| - "generic/713" | |
| - "generic/714" | |
| - "generic/715" | |
| - "generic/716" | |
| - "generic/717" | |
| - "generic/718" | |
| - "generic/719" | |
| - "generic/720" | |
| - "generic/721" | |
| - "generic/722" | |
| - "generic/723" | |
| - "generic/724" | |
| - "generic/725" | |
| - "generic/726" | |
| - "generic/727" | |
| - "generic/728" | |
| - "generic/729" | |
| - "generic/730" | |
| - "generic/731" | |
| - "generic/732" | |
| - "generic/733" | |
| - "generic/734" | |
| - "generic/735" | |
| - "generic/736" | |
| - "generic/737" | |
| - "generic/738" | |
| - "generic/739" | |
| - "generic/740" | |
| - "generic/741" | |
| - "generic/742" | |
| - "generic/743" | |
| - "generic/744" | |
| - "generic/745" | |
| - "generic/746" | |
| - "generic/747" | |
| - "generic/748" | |
| - "generic/749" | |
| - "generic/750" | |
| - "generic/751" | |
| - "generic/752" | |
| - "generic/753" | |
| - "generic/754" | |
| - "generic/755" | |
| - "generic/756" | |
| - "perf/001" | |
| - "ext4/002" | |
| - "ext4/003" | |
| - "ext4/004" | |
| - "ext4/005" | |
| - "ext4/006" | |
| - "ext4/007" | |
| - "ext4/008" | |
| - "ext4/009" | |
| - "ext4/010" | |
| - "ext4/011" | |
| - "ext4/012" | |
| - "ext4/013" | |
| - "ext4/014" | |
| - "ext4/015" | |
| - "ext4/016" | |
| - "ext4/017" | |
| - "ext4/018" | |
| - "ext4/019" | |
| - "ext4/020" | |
| - "ext4/021" | |
| - "ext4/022" | |
| - "ext4/023" | |
| - "ext4/024" | |
| - "ext4/025" | |
| - "ext4/026" | |
| - "ext4/027" | |
| - "ext4/028" | |
| - "ext4/029" | |
| - "ext4/030" | |
| - "ext4/031" | |
| - "ext4/032" | |
| - "ext4/033" | |
| - "ext4/034" | |
| - "ext4/035" | |
| - "ext4/036" | |
| - "ext4/037" | |
| - "ext4/038" | |
| - "ext4/039" | |
| - "ext4/040" | |
| - "ext4/041" | |
| - "ext4/042" | |
| - "ext4/043" | |
| - "ext4/044" | |
| - "ext4/045" | |
| - "ext4/046" | |
| - "ext4/047" | |
| - "ext4/048" | |
| - "ext4/049" | |
| - "ext4/050" | |
| - "ext4/051" | |
| - "ext4/052" | |
| - "ext4/053" | |
| - "ext4/054" | |
| - "ext4/055" | |
| - "ext4/056" | |
| - "ext4/057" | |
| - "ext4/058" | |
| - "ext4/059" | |
| - "ext4/060" | |
| - "ext4/271" | |
| - "ext4/301" | |
| - "ext4/302" | |
| - "ext4/303" | |
| - "ext4/304" | |
| - "ext4/305" | |
| - "ext4/306" | |
| - "ext4/307" | |
| - "ext4/308" | |
| custom_tests: | |
| description: "Enter custom test(s) (space or comma-separated: 'test1 test2' or 'test1,test2')" | |
| required: false | |
| type: string | |
| default: "" | |
| timeout_minutes: | |
| description: "Timeout in minutes" | |
| required: true | |
| default: 43200 # 1 month | |
| type: choice | |
| options: | |
| - 1440 # 1 day | |
| - 2880 # 2 days | |
| - 4320 # 3 days | |
| - 5760 # 4 days | |
| - 7200 # 5 days | |
| jobs: | |
| fstests_input_validation: | |
| name: Process input parameters for fstests | |
| runs-on: [self-hosted, Linux, X64] | |
| timeout-minutes: ${{ fromJson(github.event.inputs.timeout_minutes || '7200') }} | |
| outputs: | |
| kdevops_test_timeout: ${{ steps.set_timeout.outputs.kdevops_test_timeout }} | |
| group: ${{ steps.process_group.outputs.group }} | |
| selected_tests: ${{ steps.process_tests.outputs.tests }} | |
| kdevops_defconfig: ${{ steps.process_defconfig.outputs.defconfig }} | |
| soak: ${{ steps.process_soak.outputs.soak }} | |
| steps: | |
| - name: Process timeout | |
| id: set_timeout | |
| run: | | |
| MAX_TIMEOUT_ALLOWED_GITHUB_SELF_HOSTED="7200" | |
| TIMEOUT="$MAX_TIMEOUT_ALLOWED_GITHUB_SELF_HOSTED" | |
| # Note: Using curly braces for arithmetic comparison | |
| REQUESTED_TIMEOUT="${{ fromJson((github.event.inputs && github.event.inputs.timeout_minutes) || '7200') }}" | |
| if [[ -n "$REQUESTED_TIMEOUT" ]]; then | |
| if [[ ${REQUESTED_TIMEOUT} -gt ${MAX_TIMEOUT_ALLOWED_GITHUB_SELF_HOSTED} ]]; then | |
| echo "Requested timeout not allowed for github self-hosted runners." | |
| echo "The max allowed today is $MAX_TIMEOUT_ALLOWED_GITHUB_SELF_HOSTED minutes, see:" | |
| echo "" | |
| echo "https://github.blog/changelog/2024-04-04-actions-jobs-executing-on-self-hosted-runners-will-now-timeout-in-5-days/" | |
| echo "" | |
| echo "We will use the max value" | |
| else | |
| TIMEOUT=$REQUESTED_TIMEOUT | |
| fi | |
| fi | |
| echo "Setting timeout to $TIMEOUT minutes" | |
| echo "kdevops_test_timeout=$TIMEOUT" >> $GITHUB_OUTPUT | |
| - name: Process group selection | |
| id: process_group | |
| run: | | |
| if [[ "${{ github.event.inputs.group }}" == "auto" ]] || [[ "${{ github.event.inputs.group }}" == "" ]]; then | |
| echo "Default group: auto" | |
| echo "group=auto" >> $GITHUB_OUTPUT | |
| else | |
| echo "group=${{ github.event.inputs.group }}" >> $GITHUB_OUTPUT | |
| echo "Custom group selected: ${{ github.event.inputs.group }}" | |
| fi | |
| - name: Process test selection | |
| id: process_tests | |
| run: | | |
| if [[ "${{ github.event.inputs.tests }}" == "custom" ]]; then | |
| if [[ -n "${{ github.event.inputs.custom_tests }}" ]]; then | |
| # Replace commas with spaces and collapse multiple spaces into single spaces | |
| TESTS=$(echo "${{ github.event.inputs.custom_tests }}" | tr ',' ' ' | tr -s ' ') | |
| # Trim leading and trailing whitespace | |
| TESTS=$(echo "$TESTS" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//') | |
| echo "tests=$TESTS" >> $GITHUB_OUTPUT | |
| echo "Custom tests selected: $TESTS" | |
| else | |
| echo "No custom tests provided, falling back to all" | |
| echo "tests=all" >> $GITHUB_OUTPUT | |
| fi | |
| elif [[ "${{ github.event.inputs.tests }}" == "" || | |
| "${{ github.event.inputs.tests }}" == "all" ]]; then | |
| echo "Automated test so no specific test requested" | |
| echo "tests=all" >> $GITHUB_OUTPUT | |
| else | |
| echo "Custom test: ${{ github.event.inputs.tests }}" | |
| echo "tests=${{ github.event.inputs.tests }}" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Process defconfig | |
| id: process_defconfig | |
| run: | | |
| KDEVOPS_DEFCONFIG=$(basename ${{ github.repository }}) | |
| if [[ "${{ github.event.inputs.defconfig }}" == "all profiles" ]] || [[ "${{ github.event.inputs.defconfig }}" == "" ]]; then | |
| KDEVOPS_DEFCONFIG=$(basename ${{ github.repository }}) | |
| else | |
| KDEVOPS_DEFCONFIG="${{ github.event.inputs.defconfig }}" | |
| fi | |
| echo "defconfig=$KDEVOPS_DEFCONFIG" >> $GITHUB_OUTPUT | |
| - name: Process soak | |
| id: process_soak | |
| run: | | |
| if [[ "${{ github.event.inputs.soak }}" == "No soak" ]] || [[ "${{ github.event.inputs.soak }}" == "" ]]; then | |
| echo "Using default soak, that is, we don't soak" | |
| echo "soak=nosoak" >> $GITHUB_OUTPUT | |
| elif [[ "${{ github.event.inputs.soak }}" == "Low - 30 minutes" ]]; then | |
| echo "soak=1800" >> $GITHUB_OUTPUT | |
| elif [[ "${{ github.event.inputs.soak }}" == "Mid - 1 hour" ]]; then | |
| echo "soak=3600" >> $GITHUB_OUTPUT | |
| elif [[ "${{ github.event.inputs.soak }}" == "High - 2.5 hours" ]]; then | |
| echo "soak=9900" >> $GITHUB_OUTPUT | |
| elif [[ "${{ github.event.inputs.soak }}" == "Pathological - 48 hours" ]]; then | |
| echo "soak=172800" >> $GITHUB_OUTPUT | |
| else | |
| echo "This custom soak option not supported: ${{ github.event.inputs.soak }}" | |
| exit 1 | |
| fi | |
| initialize_kdevops: | |
| needs: fstests_input_validation | |
| name: Initialize kdevops environment | |
| uses: ./.github/workflows/kdevops-init.yml | |
| with: | |
| kdevops_defconfig: ${{ needs.fstests_input_validation.outputs.kdevops_defconfig }} | |
| selected_tests: ${{ needs.fstests_input_validation.outputs.tests }} | |
| soak: ${{ needs.fstests_input_validation.outputs.soak }} | |
| group: ${{ needs.fstests_input_validation.outputs.group }} | |
| secrets: inherit | |
| run_kdevops_fstests: | |
| needs: [fstests_input_validation, initialize_kdevops] | |
| name: Run CI tests | |
| runs-on: [self-hosted, Linux, X64] | |
| timeout-minutes: 43200 | |
| steps: | |
| - name: Run CI tests | |
| run: | | |
| cd kdevops | |
| if [[ "${{ needs.fstests_input_validation.outputs.selected_tests }}" == "all" ]]; then | |
| echo "Running all the tests ..." | |
| nohup stdbuf -oL bash -c 'make ci-test' > ci.log 2>&1 & | |
| else | |
| echo "Running selective tests: ${{ needs.fstests_input_validation.outputs.selected_tests }}" | |
| nohup stdbuf -oL bash -c 'make fstests-baseline TESTS="${{ needs.fstests_input_validation.outputs.selected_tests }}"' > ci.log 2>&1 & | |
| fi | |
| echo $! > ci.pid | |
| CI_WATCHDOG="./scripts/workflows/fstests/fstests_watchdog.py hosts baseline" | |
| while kill -0 $(cat ci.pid) 2> /dev/null; do | |
| $CI_WATCHDOG || echo watchdog barfed | |
| sleep 60 | |
| done | |
| make fstests-show-results > ci.commit_extra | |
| if ! grep -E "failures, [1-9]|errors, [1-9]" ci.commit_extra; then | |
| echo "ok" > ci.result | |
| fi | |
| cleanup-kdevops: | |
| needs: run_kdevops_fstests | |
| if: always() | |
| uses: ./.github/workflows/kdevops-cleanup.yml | |
| secrets: inherit |