mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-22 03:39:14 -05:00
docs: name the new-profile check CI runs
This commit is contained in:
1 parent
063a597966
commit
7895657747
5 files changed
+29
-8
No files matched your search
+3
-2
@@ -47,6 +47,7 @@ The checks CI runs on a pull request (Python 3.12 or newer):
|
||||
pip install pyyaml "jsonschema[format-nongpl]"
|
||||
python scripts/validate_pr.py --changed # the BIOS files the branch adds
|
||||
python scripts/validate_schemas.py --source-only # profiles and platform files
|
||||
python scripts/profile_sync.py --emulator NAME --strict # each profile the branch adds
|
||||
python -m unittest discover -s tests -t .
|
||||
```
|
||||
|
||||
@@ -58,8 +59,8 @@ before a release.
|
||||
## PR validation
|
||||
|
||||
CI computes SHA1/MD5/CRC32 for every new file, checks them against the platform
|
||||
configs, validates the YAML against the schemas, runs the test suite, and posts
|
||||
a report on the PR.
|
||||
configs, validates the YAML against the schemas, confronts each added profile
|
||||
with its upstream source, runs the test suite, and posts a report on the PR.
|
||||
|
||||
Contributors who add platform support are credited in the README,
|
||||
on the documentation site, and in the BIOS packs.
|
||||
@@ -88,13 +88,13 @@ Full list with per-file details: **[https://abdess.github.io/retrobios/](https:/
|
||||
|----------|-----------------:|-------------------------:|------------|
|
||||
| Batocera | 353/353 | 12,354/12,788 | MD5 hash |
|
||||
| BizHawk | 118/118 | 755/756 | SHA1 hash |
|
||||
| EmuDeck | 168/168 | 451/453 | MD5 hash |
|
||||
| EmuDeck | 168/168 | 5,810/5,840 | MD5 hash |
|
||||
| Lakka | 532/532 | 5,267/5,297 | file presence |
|
||||
| MiSTer FPGA | 81/81 | - | MD5 hash |
|
||||
| ROCKNIX | 38/38 | 5,926/6,003 | MD5 hash |
|
||||
| Recalbox | 351/351 | 2,788/2,806 | MD5 hash |
|
||||
| RetroArch | 526/526 | 5,279/5,309 | file presence |
|
||||
| RetroBat | 348/348 | 7,261/7,420 | MD5 hash |
|
||||
| RetroBat | 348/348 | 7,258/7,417 | MD5 hash |
|
||||
| RetroDECK | 2,008/2,008 | 5,327/5,377 | MD5 hash |
|
||||
| RetroPie * | 532/532 | 9,197/9,339 | file presence |
|
||||
| RomM | 383/383 | 774/781 | MD5 hash |
|
||||
@@ -180,4 +180,4 @@ The scripts and tooling are released under the [MIT License](LICENSE).
|
||||
The BIOS and firmware files are not covered by that license: they are third-party system software, preserved and provided for personal backup, archival, and interoperability with emulation software. [NOTICE](NOTICE) sets out their status and how to ask for a file to be removed.
|
||||
The reasoning, and where it is weakest, is in the [FAQ](https://abdess.github.io/retrobios/wiki/faq/#is-this-legal).
|
||||
|
||||
*Auto-generated on 2026-10-18T18:31:56Z*
|
||||
*Auto-generated on 2026-10-19T02:14:14Z*
|
||||
@@ -726,6 +726,7 @@ The checks CI runs on a pull request (Python 3.12 or newer):
|
||||
pip install pyyaml "jsonschema[format-nongpl]"
|
||||
python scripts/validate_pr.py --changed # the BIOS files the branch adds
|
||||
python scripts/validate_schemas.py --source-only # profiles and platform files
|
||||
python scripts/profile_sync.py --emulator NAME --strict # each profile the branch adds
|
||||
python -m unittest discover -s tests -t .
|
||||
```
|
||||
|
||||
@@ -737,8 +738,8 @@ before a release.
|
||||
## PR validation
|
||||
|
||||
CI computes SHA1/MD5/CRC32 for every new file, checks them against the platform
|
||||
configs, validates the YAML against the schemas, runs the test suite, and posts
|
||||
a report on the PR.
|
||||
configs, validates the YAML against the schemas, confronts each added profile
|
||||
with its upstream source, runs the test suite, and posts a report on the PR.
|
||||
|
||||
Contributors who add platform support are credited in the README,
|
||||
{site_words}, and in the BIOS packs.
|
||||
|
||||
@@ -109,6 +109,18 @@ class DeploySiteTriggers(unittest.TestCase):
|
||||
|
||||
|
||||
class DocumentedSteps(unittest.TestCase):
|
||||
def test_the_release_page_names_every_validation_job(self):
|
||||
"""check-new-profiles ran on every pull request and push while the
|
||||
page said four jobs and named none of it."""
|
||||
workflow = yaml.safe_load(
|
||||
(REPO_ROOT / ".github/workflows/validate.yml").read_text(encoding="utf-8")
|
||||
)
|
||||
page = (REPO_ROOT / "wiki/release-process.md").read_text(encoding="utf-8")
|
||||
missing = sorted(job for job in workflow["jobs"] if f"**{job}" not in page)
|
||||
self.assertEqual(missing, [])
|
||||
words = {2: "Two", 3: "Three", 4: "Four", 5: "Five", 6: "Six", 7: "Seven"}
|
||||
self.assertIn(f"{words[len(workflow['jobs'])]} jobs", page)
|
||||
|
||||
def test_the_release_page_names_every_installed_package(self):
|
||||
"""The page listed pyyaml and mkdocs and left out jsonschema: a
|
||||
maintainer following it could not run the contract check."""
|
||||
|
||||
@@ -91,7 +91,7 @@ no YAML anchor.
|
||||
**Concurrency.** Per-PR group on a pull request, per-ref on a push, cancel
|
||||
in-progress either way: a push series collapses to the tip.
|
||||
|
||||
Four jobs, two of which read pull request context and carry an event guard:
|
||||
Five jobs, two of which read pull request context and carry an event guard:
|
||||
|
||||
**validate-bios** (pull requests only). Diffs the PR to find changed BIOS
|
||||
files, runs `validate_pr.py --markdown` on each, and posts the validation
|
||||
@@ -103,6 +103,13 @@ every emulator profile against `schemas/emulator.schema.json`. Both schemas set
|
||||
`additionalProperties: false`, so a typo in a field name fails the job instead
|
||||
of being silently ignored.
|
||||
|
||||
**check-new-profiles.** Runs `profile_sync.py --emulator NAME --strict` on
|
||||
each profile the change adds (the files `git diff --diff-filter=A` names
|
||||
against the pull request base, or against the commit a push moved main from).
|
||||
A profile written from a clone can cite lines that do not hold the value it
|
||||
declares while schemas and tests pass it; this job confronts it with its
|
||||
upstream. An edited profile is not held to it.
|
||||
|
||||
**run-tests.** Runs `python -m unittest discover -s tests -t . -v`. Must pass before a
|
||||
merge, and again on the commit a direct push puts at the head of main.
|
||||
|
||||
|
||||
Reference in new issue
Block a user