Commit Graph
194 Commits
Author SHA1 Message Date
Dean Galvin 9aacd6dad0 Merge commit 'ba8dcc6ae82a5c4443efd93bbb99dfa91faf7fa4' into HEAD
# Conflicts:
#	README.md
#	tools/progress.py
2026-11-01 23:33:52 +13:00
Adrià 85840be37a Merge pull request #13900 from malekaifa/prime-d/fix-release-draft-rerun-20261030
fix(ci): resume interrupted draft releases safely
2026-11-01 08:45:34 +01:00
Dean Galvin 8c64cbba8e Merge main into d27-shader-progress 2026-11-01 17:00:11 +13:00
Dean 6135e61f45 Merge pull request #14189 from MarcZX10/ci/windows-gate-build-inputs
fix(ci): start the Windows pull request job when a build-wide input changes
2026-11-01 16:34:14 +13:00
Dean c0e05f40e3 Merge pull request #14184 from MarcZX10/ci/progress-report-input-paths
ci(progress-report): run the report when a file it reads changes
2026-11-01 16:32:47 +13:00
Dean 2893c5a008 Merge pull request #14170 from MarcZX10/ci/web-tests-archive-coverage
ci(web-tests): run all archive tests on pull requests
2026-11-01 16:28:01 +13:00
MarcZX10 88d781d0e1 fix(ci): start the Windows pull request job when a build-wide input changes
The Windows PR job configures the whole project, and the FULL pattern in tools/select_tests.py already treats core/CMakeLists.txt, cmake/, 3rdparty/, .gitmodules, tools/select_tests.py and tools/configure_seed.py as build-wide. The gate that decides whether the Windows job runs listed none of them, so a pull request that changed only cmake/WindowsTestExit.cpp, cmake/Opus.cmake, a submodule, or the seed script left the job out and stayed green. Only the post-merge push run exercised it.
2026-10-31 22:40:25 +00:00
MarcZX10 69686788b3 fix(ci): run the progress report when a file it reads changes
The report reads RdnaOpcode.hpp, tools/rdna_isa.txt and tools/nid_names.py as well as tools/progress.py, but its pull request filter listed only core/libs/prx/**, tools/progress.py and the workflow itself. A pull request that changed only one of the other three ran no report, so no progress comment was posted for it. pages-progress.yml already names RdnaOpcode.hpp.
2026-10-31 22:35:01 +00:00
Dean Galvin 9e5fec6666 test(tools): cover both ends of the VOP2-in-VOP3 range and relabel the legacy summary line
The scanner fixture gains VOP2 forms at 0x100, 0x13F and 0x140 so a shifted
bound changes a known answer. The command-line summary calls the old count
what it is (opcode names declared). The PR progress report compares only
library and legacy fields, so it no longer runs for recompiler-only changes.
2026-11-01 11:28:01 +13:00
Dean Galvin 370c8c8f26 feat(tools): report shader coverage from the recompiler source in the README badge
The shaders badge counted ISA instruction names that have an RdnaOpcode
enumerator and had reached 100%. Measure what the recompiler does instead:
decoded and translated instruction forms (base, VOP3, DPP) from the opcode
tables and emit switches, and the unsupported throws, using AMD's RDNA 2
instruction forms (MIT, vendored as a derived table). Say on the page that
this is source coverage, not game compatibility.

The Pages progress workflow now also runs when the recompiler changes, and
the Pages workflows fail instead of publishing when the scan cannot read the
recompiler.
2026-11-01 11:14:38 +13:00
MarcZX10 c1edd76407 ci(web-tests): run the archive reserved-name test on pull requests
demo/web/tests/archive-reserved.test.mjs checks that archive.mjs refuses
reserved Windows device names such as COM1 and LPT3, including the
superscript digit forms. Like the Windows path test, it ran only through
tools/test_web.py on tag pushes. Run it in the web-tests job with the same
zip library.

Checked locally on upstream main: the test exits 0 with the variables the
fetch step publishes.
2026-10-31 21:55:15 +00:00
MarcZX10 474666c517 ci(web-tests): run the archive Windows path test on pull requests
demo/web/tests/archive-windows.test.mjs checks that archive.mjs refuses
Windows-style paths such as backslashes and drive prefixes. It ran only
in tools/test_web.py, which release.yml calls on tag pushes, so a change
that broke that check passed every pull request and surfaced at the next
release. Run it in the web-tests job next to the root selection test,
with the same zip library.

Checked locally on upstream main: the test exits 0 with the variables the
fetch step publishes.
2026-10-31 21:55:06 +00:00
MarcZX10 ffc911a200 ci(web-tests): fetch the zip library once for all archive tests
The archive root test downloaded the zip library in its own step and
passed the URL and path inline. Move the download into one step that
publishes both values through GITHUB_ENV, so the archive tests added in
the following commits can share them.

The root test still runs with the same URL and path, and its exit status
is unchanged. Checked locally by running the step's script with a
simulated GITHUB_ENV and then the root test with the exported values.
2026-10-31 21:54:53 +00:00
Dean Galvin 63299d5078 feat(run-report): add the run report schema, fixtures and schema tests
Version 1 of the run report format: a JSON Schema, eleven example reports
(one generated in the test), a test that validates each against the schema and
checks that malformed or contradictory reports are rejected, and a workflow
that runs the test with a pinned validator.
2026-11-01 09:43:53 +13:00
Mohamed Malek Aifa 4ceaa96b3a fix(ci): use supported draft release edit options 2026-10-31 19:59:42 +01:00
Mohamed Malek Aifa cd5a038e37 fix(ci): resume interrupted draft releases safely 2026-10-31 19:59:42 +01:00
Adrià d30e04fb8a Merge pull request #13571 from malekaifa/fix/ci-paginate-area-labels
fix(ci): paginate area label scans
2026-10-31 03:19:56 +01:00
boykopovar cf0a4fbd1f fix(ci): keep release builds running when another platform fails 2026-10-31 00:13:24 +03:00
Mohamed Malek Aifa 5bb3b24be5 fix(ci): paginate area label scans 2026-10-30 19:31:23 +01:00
boykopovar 5fbe7bc016 fix(ci): increase release timeouts to one hour 2026-10-30 21:17:55 +03:00
xXPBSXxandClaude Sonnet 5.5 1ceceab40e ci(sanitizers): skip the strict precise_wait bound in the hosted nightly
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 12:49:52 +01:00
Adrià 8304ccaedb Merge pull request #11341 from SteelCrab/review/emscripten-libraries
build(libs): support Emscripten memory64 compilation
2026-10-30 12:49:20 +01:00
boykopovar be5f69871a ci(release): prefix header archives with prx 2026-10-30 10:30:10 +03:00
boykopovar 8599f86e7c ci(release): publish public header archives 2026-10-30 10:27:16 +03:00
boykopovar 7ffb8ab4a5 ci(release): publish unpatched libraries and import archives 2026-10-30 10:18:38 +03:00
pista 2c22b68133 fix(libs): reject unsupported WebAssembly module unwind queries 2026-10-30 10:50:57 +09:00
pista 2f49b2568d build(libs): validate current native and WebAssembly adapter sources 2026-10-30 10:50:57 +09:00
pista baedb114f9 test(libs): build Emscripten adapters and check guest long doubles in CI 2026-10-30 10:50:57 +09:00
dkdhanda8 aebcf0452a ci: build and run the changed guest core/libs tests on pull requests
Pull requests only link the host-only core/libs test executables and
never run a guest test, so the three guest_pad test aborts in
#12308-#12310 reached review with every check green. The windows pull
request job now builds the libs target and runs the guest tests whose
sources changed, mirroring the host-only selection; changes that
cannot reach core/libs keep the job light with an early no-op.
2026-10-29 21:44:59 +05:30
StoneDC 0e9dba02cc test(web): run directory writer regressions in pull request CI 2026-10-28 19:31:01 +08:00
Adrià 228cd64b53 Merge pull request #11228 from ebosido444-ai/fix/web-failure-report
fix(web): keep the failure report with a failed conversion
2026-10-27 18:36:03 +01:00
Dean bbb11b6974 Merge pull request #11062 from MarcZX10/marc/ci-nightly-sanitizers
ci: run every test under ASan and UBSan nightly
2026-10-28 05:58:34 +13:00
Dean f52d0373ea Merge pull request #11486 from plexerPK/codex/test-selection-git-paths
fix(ci): preserve changed paths in test selection
2026-10-27 21:27:02 +13:00
Dean 808a557ac3 Merge pull request #11343 from MarcZX10/marc/ci-mingw-host-only-tests
ci(windows): link host-only tests on pull requests
2026-10-27 21:23:20 +13:00
ebosido444-ai 6252b18b81 fix(web): keep the failure report with a failed conversion
A failed inspect or conversion hid the progress panel that held the
conversion log, cleared the selected archives and showed a single line,
so the only evidence of the failure was gone and a multi-GB input had to
be picked again. Compose the message with the phase, the current input,
the target, the libraries tag and the last 150 log lines, and show it in
the error box under "Failure details" so it can be copied into a report.

The report is a pure function in failure-report.mjs and is covered by
node tests.
2026-10-27 07:52:34 +01:00
MarcZX10 85a62536c1 ci: drop the trailing colon from the sanitizer run's ASAN_OPTIONS
The workflow and BUILD.md said ASAN_OPTIONS must end with ':' because tests append their own options with string_append. That is wrong: add_asan_test_options appends ':<options>', so ASAN_OPTIONS=detect_leaks=0 already gives detect_leaks=0:detect_stack_use_after_return=0 for the fiber test. Use detect_leaks=0 and remove the claim.
2026-10-27 06:35:12 +00:00
MarcZX10 793c0ba05d ci: build and test in the sanitizer workflow only after configuration succeeds
When configuration failed, the test and summary steps still ran on the half-configured build directory, found no tests and reported success, so the failed run looked partly green. Gate the build, test and summary steps on the configure step; the job then fails at configuration alone. The build steps keep continue-on-error, so a target that fails to build still shows up as not-run tests.
2026-10-27 06:35:01 +00:00
MarcZX10 43067fef60 ci: install libxrandr-dev for the sanitizer build
The bundled SDL configuration stops without XRandR ('SDL has no XRandR support, so X11 display refresh rates cannot be queried'), as docs/dev/BUILD.md notes, and ubuntu-latest does not ship libxrandr-dev. Found by a run of the workflow on ubuntu-latest.
2026-10-27 06:35:01 +00:00
MarcZX10 1f5d0b347c ci: run every test under ASan and UBSan nightly
Add the Sanitizers workflow. Every night at 03:41 UTC, and on workflow_dispatch, it builds the full runtime on ubuntu-latest with -DANYPS5_ENABLE_ASAN=ON and -fsanitize=undefined -fno-sanitize=vptr, building only the F16ToF32Unpack, F64FmaSubnormals and RegistrationPrepareShutdown AGC execution tests like the Windows MSYS2 workflow, and runs every registered test with ASAN_OPTIONS=detect_leaks=0: and UBSAN_OPTIONS=print_stacktrace=1:halt_on_error=1. ASAN_OPTIONS ends with ':' because tests append their own options with string_append. The build keeps going after a failing target, so its tests report as not run instead of hiding the rest. tools/sanitizer_report.py then writes the job summary from ctest's JUnit file and fails the job only for failures missing from .github/sanitizer-known-failures.txt. It reuses the submodule, ccache and FFmpeg caching of the Windows MSYS2 workflow, frees preinstalled toolchains the build does not use to make room for the instrumented objects, and uploads ctest.log and ctest.xml.
2026-10-27 06:34:54 +00:00
Dean 8a062258e7 Merge pull request #10934 from ahmadmuj/fix/anyps5-relinker-gate-inputs
ci(build): run the relinker jobs for relinker-only build inputs outside core/relinker
2026-10-27 18:29:15 +13:00
plexerPK 46ac6233e9 fix(ci): preserve changed paths in test selection 2026-10-26 18:39:36 +01:00
Dean 4e43321bd6 Merge pull request #11008 from Dynoooooo/ci/skip-upstream-jobs-in-forks
ci: skip the upstream-only jobs in forks
2026-10-26 22:15:57 +13:00
MarcZX10 7bf29ea91b ci(windows): link host-only tests on pull requests 2026-10-26 07:57:14 +00:00
Dean 74974a3d68 Merge pull request #3456 from AMRYB/feat/web-input-mapper
feat(input): add browser-based input mapping configurator
2026-10-26 20:01:17 +13:00
Dean 63fa26aa68 Merge pull request #10067 from kiansaeidnia/fix/web-change-selection
fix(web): reset batch selection when changing apps
2026-10-26 06:14:10 +13:00
Brantley T. RobersonandClaude Opus 5.5 89fc74fa2b ci: skip the upstream-only jobs in forks
Forks inherit three jobs that cannot succeed there. Pages progress fails
on `gh api repos/<fork>/pages` (HTTP 404) after every push to main that
touches core/libs/prx, Pages fails at the release download or the
deployment, and the Build linux job waits for the self-hosted
`anyps5` runner, which forks don't have, until GitHub drops it. These
jobs now run only when the repository is not a fork.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 10:05:08 -04:00
Ahmad Mujahid eee902ac80 ci(build): run the relinker jobs for relinker-only build inputs outside core/relinker
The relinker eligibility list was written on 10-12 and missed inputs added to the relinker-only build since then: the nid sources that relinker_core and two relinker tests compile, the libkernel headers that ParamJsonParser.cpp includes, the pad command file test, the recompiler test targets and cache source tests, and the PR template and pr-overlap.yml that tools tests read. A pull request that changed only these got no automatic build, and a push to main skipped the macOS relinker hosts for them.

The recompiler is listed as a directory because shader_cache_runtime_sources copies all of core/shader/recompiler and hashes every file its CMakeLists globs, so an edit to any of them can change that test.

An edit to the relinker-asan job alone also skipped both relinker jobs, because only edits to the relinker job counted.
2026-10-25 14:58:21 +04:00
Dean Galvin 16996b5e64 revert: ci(windows): keep test temporary files on the runner's work disk (#10643)
This reverts commit da6c581a02, reversing changes made to 10a41a0d50.

On D:, the runner does not create 8.3 short names, so guest_named_shm_windows_short_temp and guest_named_shm_windows_long_short_temp skip and check_skips fails the Windows job.
2026-10-25 22:32:12 +13:00
Dean da6c581a02 Merge pull request #10643 from LeandroLP23/ci/windows-tests-temp-on-work-disk
ci(windows): keep test temporary files on the runner's work disk
2026-10-25 21:53:00 +13:00
LeandroLP23andClaude Opus 5.5 ae83030621 ci(windows): keep test temporary files on the runner's work disk
On windows-latest, TEMP is on C:, which writes 256 MiB in 1.9 s against
0.2 s on D:, where RUNNER_TEMP and the workspace live. The ctest step now
points TEMP and TMP at runner.temp. On a probe runner the optional byte-cap
capture test drops from a 6.4 s median to 1.3 s with four copies running,
and the git-heavy tool tests from 26-35 s to 24-26 s.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 16:15:57 +02:00