fix: fetch platform originals without exporting

--fetch also exported and stopped on the absent dist/truth before any
download, so CI skipped every exporter fidelity case and tolerated the
step. --refresh-cache only downloads: the step can no longer fail
unseen.
This commit is contained in:
Abdessamad Derraz committed 2026-11-09 12:45:57 +01:00
1 parent eb8f60aef7
commit 51aa626028
5 files changed
+11 -12

No files matched your search

+5 -5
View File
@@ -278,12 +278,12 @@ jobs:
- run: npm ci --prefix website
# The exporter fidelity cases compare what we hand back against the
# file each platform publishes, so they need those files. They skip
# without them rather than fail, which is why an unreachable upstream
# must not stop the run: the rest of the suite still has to report.
# file each platform publishes, so they need those files. --fetch
# exported as well and stopped on the absent dist/truth before any
# download, so the cases skipped on every run: --refresh-cache only
# downloads them.
- name: Fetch the platforms' own files
continue-on-error: true
run: python scripts/export_native.py --all --fetch --output-dir "$RUNNER_TEMP/native"
run: python scripts/export_native.py --all --refresh-cache
# A pack built without its data directories exits non-zero: it is not
# the pack a user gets. Tests that build packs need the same trees a
+2 -2
View File
@@ -50,8 +50,8 @@ STEPS: tuple[Step, ...] = (
needs="vermin", provider="the pip line of CONTRIBUTING.md"),
Step("shellcheck --version", "the launcher test runs shellcheck", needs="shellcheck",
provider="the shellcheck package"),
Step("python scripts/export_native.py --all --fetch --output-dir tmp/native",
"files the exporter tests compare with", may_fail=True),
Step("python scripts/export_native.py --all --refresh-cache",
"files the exporter tests compare with"),
Step("python scripts/refresh_data_dirs.py", "data directories the pack-building tests read"),
Step("python scripts/generate_site.py", "the pages the site tests read"),
Step("npm ci --prefix website", "the site's packages, Node 24",
-1
View File
@@ -240,7 +240,6 @@ class OneCommandRunsTheChecks(unittest.TestCase):
workflow = (REPO_ROOT / ".github" / "workflows" / "validate.yml").read_text(encoding="utf-8")
tolerated = set(re.findall(r"continue-on-error: true\n\s*run: (\S+ \S+)", workflow))
self.assertTrue(tolerated)
for step in pr_checks.STEPS:
with self.subTest(step=step.command):
self.assertEqual(step.may_fail, " ".join(step.command.split()[:2]) in tolerated)
+1 -1
View File
@@ -144,7 +144,7 @@ upstream. An edited profile is not held to it.
**run-tests.** On Python 3.8, 3.9 and 3.12: holds `install.py` to 3.8 with
`vermin`, sets up bubblewrap for the sandbox tests, fetches the platforms' own
files (allowed to fail, the fidelity tests then skip) and the data
files (`export_native.py --all --refresh-cache`, for the fidelity tests) and the data
directories, generates the site, then runs
`python -m unittest discover -s tests -t . -v` with `RETROBIOS_OFFLINE=1`, the
full-screen installer tests again under 3.8, and the site build
+3 -3
View File
@@ -540,9 +540,9 @@ 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.
own file, which `python scripts/export_native.py --all --refresh-cache`
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: