docs: fetch platform files before the PR tests

This commit is contained in:
Abdessamad Derraz committed 2026-11-06 14:49:06 +01:00
1 parent 747d40e988
commit bd50b08133
4 files changed
+31

No files matched your search

+1
View File
@@ -76,6 +76,7 @@ pip install pyyaml "jsonschema[format-nongpl]" markdown pyte hypothesis vermin s
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 --added --strict # each profile the branch adds
python scripts/export_native.py --all --fetch --output-dir tmp/native # files the exporter tests compare with
python scripts/refresh_data_dirs.py # data directories the pack-building tests read
python scripts/generate_site.py # the pages the site tests read
npm ci --prefix website && npm run build --prefix website # the built site, Node 24
+1
View File
@@ -1002,6 +1002,7 @@ pip install pyyaml "jsonschema[format-nongpl]" markdown pyte hypothesis vermin s
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 --added --strict # each profile the branch adds
python scripts/export_native.py --all --fetch --output-dir tmp/native # files the exporter tests compare with
python scripts/refresh_data_dirs.py # data directories the pack-building tests read
python scripts/generate_site.py # the pages the site tests read
npm ci --prefix website && npm run build --prefix website # the built site, Node 24
+25
View File
@@ -611,3 +611,28 @@ class EveryOptionExists(unittest.TestCase):
if __name__ == "__main__":
unittest.main()
class ContributorChecksFetchThePlatformsFiles(unittest.TestCase):
"""validate.yml fetches each platform's own file before the suite. The
checklist left it out, so the exporter fidelity cases skipped on a
contributor's clone and first ran, red, in CI."""
def test_the_pr_checklist_fetches_them_before_the_tests(self):
workflow = _read(".github/workflows/validate.yml")
self.assertLess(
workflow.index("python scripts/export_native.py --all --fetch"),
workflow.index("python -m unittest discover"),
)
for text in (
contributing_text(lambda page: page, "# C", "here"),
_read("CONTRIBUTING.md"),
):
block = _section(text, "## Before opening a PR")
self.assertIn("python scripts/export_native.py --all --fetch", block)
self.assertLess(
block.index("export_native.py"), block.index("unittest discover")
)
def test_the_testing_guide_names_the_command(self):
self.assertIn("export_native.py --all --fetch", _read("wiki/testing-guide.md"))
+4
View File
@@ -493,6 +493,10 @@ of main passes, not every commit under it.
Modules that need real artifacts skip themselves when those artifacts are absent,
so `test_pack_integrity` is a no-op in CI (no `dist/`) and a real check locally.
The exporter fidelity cases go the other way: they compare with each platform's
own file, which `python scripts/export_native.py --all --fetch --output-dir
tmp/native` downloads into `.cache/upstream-native/`. CI runs it before the
suite, and a clone without that cache skips them.
Run `python -m unittest discover -s tests -t .` before pushing.
Tests must pass before merge. If a test fails in CI, reproduce locally with: