mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-01 23:53:46 -06:00
campaign.py takes buildbot nightlies (or a build of the pinned commit), the test content of tests/campaign/content.yml through romfetch, and runs core_probe for the files, boot, path, alias, variants and bench checks. A fixed rule table settles hle_fallback, required, path and aliases with the record ids as evidence, the rest goes to measurements/findings.jsonl. Resumable state, load, disk and budget guards, retries, content reference counting with an LRU cap, and an autorun job after the nightly.
59 lines
2.3 KiB
JSON
59 lines
2.3 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://abdess.github.io/retrobios/api/v1/schemas/campaign-run.schema.json",
|
|
"title": "RetroBIOS campaign run",
|
|
"description": "One line of measurements/campaign-runs.jsonl: one pass of scripts/campaign.py, what it left done, failed and pending, and the records and findings it added. Lines are appended, never rewritten.",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["schema_version", "id", "started_at", "ended_at", "result", "detail", "counts",
|
|
"pending_reasons", "failed", "records", "findings"],
|
|
"properties": {
|
|
"schema_version": { "const": 1 },
|
|
"id": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}-[0-9a-f]{12}$" },
|
|
"started_at": { "type": "string", "format": "date-time" },
|
|
"ended_at": { "type": "string", "format": "date-time" },
|
|
"result": {
|
|
"enum": ["complete", "budget", "paused", "stopped"],
|
|
"description": "complete: nothing runnable was left. budget: the time budget ended the pass. paused: a busy host or a full disk ended it, the next pass resumes. stopped: interrupted."
|
|
},
|
|
"detail": { "type": "string" },
|
|
"counts": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["done", "failed", "pending"],
|
|
"properties": {
|
|
"done": { "type": "integer", "minimum": 0 },
|
|
"failed": { "type": "integer", "minimum": 0 },
|
|
"pending": { "type": "integer", "minimum": 0 }
|
|
}
|
|
},
|
|
"pending_reasons": {
|
|
"type": "object",
|
|
"additionalProperties": { "type": "integer", "minimum": 1 },
|
|
"description": "Pending checks counted by reason."
|
|
},
|
|
"failed": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["emulator", "check", "reason"],
|
|
"properties": {
|
|
"emulator": { "type": "string" },
|
|
"check": { "type": "string" },
|
|
"reason": { "type": "string" }
|
|
}
|
|
}
|
|
},
|
|
"records": {
|
|
"type": "array",
|
|
"items": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}-[0-9a-f]{12}$" }
|
|
},
|
|
"findings": {
|
|
"type": "object",
|
|
"additionalProperties": { "type": "integer", "minimum": 0 },
|
|
"description": "Finding lines added by this pass, counted by status."
|
|
}
|
|
}
|
|
}
|