Commit Graph
264 Commits
Author SHA1 Message Date
Ahir 69eed07f5e ci: allow more time for Rosetta test jobs 2026-11-04 19:33:05 +05:30
Ahir 68817e4be0 ci: run the macOS write watch and register context tests under Rosetta 2026-11-04 19:32:47 +05:30
Dean a76695e60b Merge pull request #14859 from rickyalvarez185/ci/web-release-python-tests
ci(web): run release tool tests for relevant pull requests
2026-11-03 18:10:49 +13:00
Dean 1b678de17e Merge pull request #14452 from MarcZX10/fix/ffmpeg-cache-per-toolchain
fix(ci): key the ffmpeg cache of the winlibs and MSYS2 Windows builds by their toolchain
2026-11-03 11:36:40 +13:00
Dean ea97a270e2 Merge pull request #14414 from roboterspinne/ci/build-windows-pr-ctest-log
ci(build): write ctest.log on the Windows pull request path so tests over 30 s are reported
2026-11-03 11:35:53 +13:00
Dean e7146136e5 Merge pull request #14332 from MarcZX10/fix/rosetta-install-only-when-needed
ci(build): install Rosetta only when the x86_64 relinker job cannot run x86_64 code
2026-11-03 08:48:28 +13:00
Dean 29c7100427 Merge pull request #14307 from MarcZX10/ci/ctest-fail-when-no-tests-run
ci: fail the emscripten and Windows ctest steps when no test is registered
2026-11-03 08:47:53 +13:00
Dean 48b244d6c5 Merge pull request #14191 from MarcZX10/ci/stale-conflicts-fail-on-list-error
fix(ci): fail the stale label cleanup when listing the labelled pull requests fails
2026-11-03 08:46:40 +13:00
Dean 573edc50d8 Merge pull request #14187 from MarcZX10/ci/relinker-test-step-needs-tests
fix(ci): fail the relinker test step when no test is registered
2026-11-03 08:46:33 +13:00
Dean 380d607d50 Merge pull request #14071 from MarcZX10/ci/push-builds-per-commit
ci(build): give each push to main its own concurrency group
2026-11-03 08:45:56 +13:00
Dean 0b20efc578 Merge pull request #12741 from SHOnnay/feat-macos-kevent-edge-watch
feat(equeue): implement macOS edge watches
2026-11-03 02:39:21 +13:00
Dean c0960b2002 Merge pull request #12351 from StoneDC/fix/web-library-manifest-target
fix(web): validate library manifest target and identity
2026-11-03 02:37:32 +13:00
rickyalvarez185 059f8f1926 ci(web): run release tool tests for relevant pull requests 2026-11-01 21:47:56 +01:00
Adrià f2d874c1fd Merge pull request #13933 from klosixgaming-arch/ci/review-queue-label
feat(tools): queue the oldest pull requests that need no more author work
2026-11-01 16:09:54 +01:00
MarcZX10 06e0f56167 fix(ci): key the MSYS2 job's ffmpeg cache by its toolchain
The MSYS2 job builds ffmpeg with MSYS2's GCC, which installs the floating package set. Its ffmpeg cache key now has an msys2 segment, so it no longer restores a build made with the winlibs GCC of build.yml. The cache is rebuilt once after this change.
2026-11-01 14:05:40 +00:00
MarcZX10 5b1d0ca72f fix(ci): key the winlibs Windows build's ffmpeg cache by its toolchain
The Windows test job in build.yml and the MSYS2 job in windows-msys2.yml used the same ffmpeg cache key, so each could restore an ffmpeg build made with the other's GCC. The winlibs job's key now carries its archive name, and the next commit gives the MSYS2 job its own prefix.
2026-11-01 14:05:40 +00:00
MarcZX10 e4184fd518 Merge remote-tracking branch 'upstream/main' into HEAD 2026-11-01 12:06:18 +00:00
StoneDC 20e26d034d chore(web): retain manifest and main archive workflow checks 2026-11-01 20:05:19 +08:00
SAKIBUL HUDA ONNAY 7298636d8e feat(equeue): implement macOS edge watches 2026-11-01 17:13:29 +06:00
Dean Galvin 9aacd6dad0 Merge commit 'ba8dcc6ae82a5c4443efd93bbb99dfa91faf7fa4' into HEAD
# Conflicts:
#	README.md
#	tools/progress.py
2026-11-01 23:33:52 +13:00
roboterspinne 917984c07d ci(build): write ctest.log on the Windows pull request path so tests over 30 s are reported
The Windows job runs its "Report tests slower than 30 s" step on pull
requests, but only the push path wrote ctest.log. On pull requests the
tests run through build_changed_guest_tests.py, whose ctest call had no
--output-log, so the step found no log and exited 0 without a warning.

build_changed_guest_tests.py takes an optional --output-log PATH and
passes it to its single ctest run; the Windows pull request step passes
--output-log ctest.log, as the push path and the Linux job already do.
2026-11-01 11:09:36 +01:00
MarcZX10 5c7cfdb30f ci(build): install Rosetta only when the x86_64 relinker job cannot run x86_64 code
The macOS x86_64 relinker job ran sudo softwareupdate --install-rosetta unconditionally. On pull request #14315's run (41290340866), that step failed with 'Rosetta 2 update is not available' and exit 1, and every later step was skipped, so the job reported a failure before it built or tested anything. The step now runs the install only when 'arch -x86_64 /usr/bin/true' fails, so an image that already has Rosetta skips it.
2026-11-01 09:39:17 +00:00
MarcZX10 1f5e6db9c0 ci: fail the emscripten and Windows ctest steps when no test is registered
ctest runs with --no-tests=ignore unless asked, so a configuration that registers no test passes with 'No tests were found'. The emscripten native and portable builds and the Windows build each register at least one test today, so the flag changes nothing on a healthy configuration; it closes the gap for a future change that drops every registration.
2026-11-01 08:03:18 +00: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 c407ae115a fix(ci): fail the stale label cleanup when listing the labelled pull requests fails
The cleanup step pipes gh pr list into a while loop. The run step had no shell set, so the default on Linux runs bash -e without pipefail, and the step's status was the loop's status. A failed or rate-limited listing ran the loop zero times and the step stayed green, with no stale label removed and nothing reported. shell: bash gives the step pipefail.
2026-10-31 22:42:41 +00: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 b0dbe27b48 fix(ci): fail the relinker test step when no test is registered
The relinker-only test step runs ctest without --no-tests=error, so a configuration that registers no test passes with 'No tests were found'. The sibling steps for the register-context, write-watch and relinker-asan tests already pass that flag. ctest 3.25.1 exits 0 without it and 8 with it when no test is found.
2026-10-31 22:38:28 +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
MarcZX10 d9cc56e3e5 ci(build): give each push to main its own concurrency group
The push group was build-push-<ref> with cancel-in-progress off. GitHub
keeps one waiting run per group, so each push that arrived while a build
ran replaced the waiting one. Between 2026-10-30 01:04 and 2026-10-31
13:17, 549 pushes to main started and 512 of those commits never got a
completed build, although CONTRIBUTING.md promises a full Linux and
Windows build for every push.

Group pushes by commit, as #13954 does for emscripten-libraries.yml and
input-mapper.yml, so every push runs. Pull requests and manual runs keep their
groups.
2026-10-31 17:45:56 +00:00
klosixgaming-arch 621f7268e9 feat(tools): queue the oldest pull requests that need no more author work
Reads every open pull request through paged GraphQL, ignores bot jobs, treats a change request as answered only once the reviewer is asked again, and labels and lists the oldest 30.
2026-10-31 08:09:02 -05: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