Enhance CMake configuration and CI/CD workflows for improved testing

- Updated CMakeLists.txt to introduce options for enabling experimental tests and minimal CI builds.
- Modified CMakePresets.json to refine test presets, including stable and experimental test configurations.
- Enhanced CI workflows in ci.yml to streamline testing processes, ensuring stable tests are prioritized and experimental tests are run separately.
- Added new documentation files outlining the CI/CD testing strategy and testing categories for better clarity on testing practices.
- Improved test discovery in CMakeLists.txt to simplify labeling and enhance CI efficiency.
This commit is contained in:
scawful
2025-09-25 09:39:33 -04:00
parent a1429a8199
commit e930789f4b
9 changed files with 486 additions and 56 deletions

View File

@@ -208,16 +208,16 @@
],
"testPresets": [
{
"name": "default",
"name": "stable",
"configurePreset": "default",
"displayName": "Default Tests",
"displayName": "Stable Tests (Release Ready)",
"execution": {
"noTestsAction": "error",
"stopOnFailure": false
"stopOnFailure": true
},
"filter": {
"exclude": {
"label": "ROM_DEPENDENT"
"include": {
"label": "STABLE"
}
}
},
@@ -228,19 +228,48 @@
"execution": {
"noTestsAction": "error",
"stopOnFailure": false
},
"filter": {
"exclude": {
"label": "EXPERIMENTAL"
}
}
},
{
"name": "ci",
"configurePreset": "ci",
"displayName": "CI Tests (no ROM)",
"displayName": "CI Tests (stable only)",
"execution": {
"noTestsAction": "error",
"stopOnFailure": true
},
"filter": {
"include": {
"label": "STABLE"
}
}
},
{
"name": "experimental",
"configurePreset": "debug",
"displayName": "Experimental Tests",
"execution": {
"noTestsAction": "ignore",
"stopOnFailure": false
},
"filter": {
"exclude": {
"label": "ROM_DEPENDENT"
"include": {
"label": "EXPERIMENTAL"
}
}
},
{
"name": "asar-only",
"configurePreset": "default",
"displayName": "Asar Tests Only",
"filter": {
"include": {
"name": "*Asar*"
}
}
},
@@ -253,16 +282,6 @@
"label": "UNIT_TEST"
}
}
},
{
"name": "integration-only",
"configurePreset": "dev",
"displayName": "Integration Tests Only",
"filter": {
"include": {
"label": "INTEGRATION_TEST"
}
}
}
],
"packagePresets": [