From 34e4784c43e4b3f1d3ef6341e5d79cd7c437772b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Chrobot?= Date: Tue, 4 Aug 2026 14:10:46 +0200 Subject: [PATCH 1/5] Re-enabled ps5 and webgl --- .yamato/console-standalone-test.yml | 17 +++++---- .yamato/project.metafile | 56 ++++++++++++++--------------- 2 files changed, 34 insertions(+), 39 deletions(-) diff --git a/.yamato/console-standalone-test.yml b/.yamato/console-standalone-test.yml index dba4a796a1..6af97cdf65 100644 --- a/.yamato/console-standalone-test.yml +++ b/.yamato/console-standalone-test.yml @@ -31,7 +31,6 @@ # Each console requires specific SDK paths and tools # QUALITY THOUGHTS-------------------------------------------------------------------- - # TODO: consider adding all projects that have tests # To see where this job is included (in trigger job definitions) look into _triggers.yml file @@ -55,12 +54,12 @@ console_standalone_build_{{ project.name }}_{{ platform.name }}_{{ editor }}: variables: # PS4 related SCE_ORBIS_SDK_DIR: 'C:\Users\bokken\SCE\ps4_sdk_12_00' -# PS5 related --> THIS WAS DISABLED IN PROJECT.METAFILE. SEE MTT-12118 - SCE_PROSPERO_SDK_DIR: 'C:\Program Files (x86)\SCE\Prospero SDKs\9.000' - SHADER_COMPILER_PATH: '${SCE_PROSPERO_SDK_DIR}\target\bins' +# PS5 related --> playstation/ps5-buildandexecute image ships SDK 13.000. + SCE_PROSPERO_SDK_DIR: 'C:\Program Files (x86)\SCE\Prospero SDKs\13.000' + SHADER_COMPILER_PATH: '${SCE_PROSPERO_SDK_DIR}\host_tools\bin' SCE_ROOT_DIR: 'C:\Program Files (x86)\SCE' # Switch related - NINTENDO_SDK_ROOT: 'C:\Nintendo\nx_sdk-18_3_0\NintendoSDK' + NINTENDO_SDK_ROOT: 'C:\Nintendo\nx_sdk-22_2_0\NintendoSDK' UNITY_NINTENDOSDK_CLI_TOOLS: '${NINTENDO_SDK_ROOT}\Tools\CommandLineTools' artifacts: players: @@ -94,12 +93,12 @@ console_standalone_test_{{ project.name }}_{{ platform.name }}_{{ editor }}: variables: # PS4 related SCE_ORBIS_SDK_DIR: 'C:\Users\bokken\SCE\ps4_sdk_12_00' -# PS5 related --> THIS WAS DISABLED IN PROJECT.METAFILE. SEE MTT-12118 - SCE_PROSPERO_SDK_DIR: 'C:\Program Files (x86)\SCE\Prospero SDKs\9.000' - SHADER_COMPILER_PATH: '${SCE_PROSPERO_SDK_DIR}\target\bins' +# PS5 related --> playstation/ps5-buildandexecute image ships SDK 13.000. + SCE_PROSPERO_SDK_DIR: 'C:\Program Files (x86)\SCE\Prospero SDKs\13.000' + SHADER_COMPILER_PATH: '${SCE_PROSPERO_SDK_DIR}\host_tools\bin' SCE_ROOT_DIR: 'C:\Program Files (x86)\SCE' # Switch related - NINTENDO_SDK_ROOT: 'C:\Nintendo\nx_sdk-18_3_0\NintendoSDK' + NINTENDO_SDK_ROOT: 'C:\Nintendo\nx_sdk-22_2_0\NintendoSDK' UNITY_NINTENDOSDK_CLI_TOOLS: '${NINTENDO_SDK_ROOT}\Tools\CommandLineTools' artifacts: logs: diff --git a/.yamato/project.metafile b/.yamato/project.metafile index 13443d6451..3bb9aad111 100644 --- a/.yamato/project.metafile +++ b/.yamato/project.metafile @@ -111,23 +111,19 @@ test_platforms: flavor: b1.large larger_flavor: b1.xlarge standalone: PS4 - # - name: ps5 --> SEE MTT-12118 - # type: Unity::VM - # image: package-ci/win10-ps5:v4 - # flavor: b1.large - # larger_flavor: b1.xlarge - # standalone: PS5 - # - name: switch --> TEMPORARILY DISABLED. SEE MTT-12118 - # The NintendoSDK on the win10-switch:v4 Bokken image is incomplete for the SDK - # version the newer editor Playback Engines require: 18_3_0 is missing the - # nintendo-switch-support lib the new toolchain links against, and 21_4_3 is missing the - # Tools\Graphics\NvnTools (GraphicsConverter) libraries needed to package textures. - # Neither is fixable from .yamato; re-enable once Package CI ships a complete SDK on the image. - # type: Unity::VM - # image: package-ci/win10-switch:v4 - # flavor: b1.large - # larger_flavor: b1.xlarge - # standalone: Switch + # ps5 uses the PlayStation team image (SDK 13.000); package-ci/win10-ps5:v4 only ships SDK 9.00. + - name: ps5 + type: Unity::VM + image: playstation/ps5-buildandexecute:v10.8.7 + flavor: b1.large + larger_flavor: b1.xlarge + standalone: PS5 + - name: switch + type: Unity::VM + image: package-ci/win10-switch:v4 + flavor: b1.large + larger_flavor: b1.xlarge + standalone: Switch - name: GameCoreXboxOne type: Unity::VM image: package-ci/win10-xbox:v4 @@ -147,19 +143,19 @@ test_platforms: flavor: b1.large larger_flavor: b1.xlarge standalone: PS4 - #- name: ps5 --> SEE MTT-12118 - # type: Unity::console::ps5 - # image: package-ci/win10-ps5:v4 - # flavor: b1.large - # larger_flavor: b1.xlarge - # standalone: PS5 - # - name: switch --> TEMPORARILY DISABLED. SEE MTT-12118 (incomplete NintendoSDK on win10-switch:v4 image) - # type: Unity::console::switch - # image: package-ci/win10-switch:v4 - # flavor: b1.large - # larger_flavor: b1.xlarge - # standalone: Switch - # base: win + - name: ps5 + type: Unity::console::ps5 + image: playstation/ps5-buildandexecute:v10.8.7 + flavor: b1.large + larger_flavor: b1.xlarge + standalone: PS5 + - name: switch + type: Unity::console::switch + image: package-ci/win10-switch:v4 + flavor: b1.large + larger_flavor: b1.xlarge + standalone: Switch + base: win - name: GameCoreXboxOne type: Unity::console::xbox image: package-ci/win10-xbox:v4 From 8feb30ec21ea8f4349923fba3e01c3ae8c9f0351 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Chrobot?= Date: Tue, 4 Aug 2026 15:23:41 +0200 Subject: [PATCH 2/5] ci: Add WebGL PlayMode test job (MTT-15569) Split the WebGL CI into a build phase and a run phase. webgl-build.yml now exposes the built player as a dedicated 'players' artifact, and a new webgl-test.yml run job consumes it and executes the PlayMode tests inside Firefox on a GPU-backed Ubuntu agent (Unity::VM::GPU, rtx2080). The Firefox browser flags are passed explicitly so UTR does not attempt to download the browser from Stevedore. The run job is wired into the Nightly and Weekly (QV) triggers only, not into PR triggers, since WebGL failures are infrequent and the build is slow. Runtime RuntimePlatform.WebGLPlayer exclusions are intentionally deferred to be added reactively after the first real CI run. --- .yamato/README.md | 2 +- .yamato/_run-all.yml | 42 ++++++++++++-- .yamato/_triggers.yml | 7 ++- .yamato/project.metafile | 9 +++ .yamato/{webgl-build.yml => webgl-test.yml} | 63 ++++++++++++++++----- 5 files changed, 103 insertions(+), 20 deletions(-) rename .yamato/{webgl-build.yml => webgl-test.yml} (50%) diff --git a/.yamato/README.md b/.yamato/README.md index 7db6767555..f03d144fd5 100644 --- a/.yamato/README.md +++ b/.yamato/README.md @@ -21,7 +21,7 @@ CI related files are present inside .yamato/ folder and we can distinguish speci - `.yamato/project-standards.yml` responsible for running standards check on a package. - `.yamato/code-coverage.yml` responsible for running code coverage analysis. - `.yamato/performance-tests.yml` responsible for running performance tests. -- `.yamato/webgl-build.yml` responsible for making a build for webgl platform. +- `.yamato/webgl-test.yml` responsible for building a webgl player and running its PlayMode tests in a browser. ### Standalone Tests - `.yamato/desktop-standalone-tests.yml` responsible for running tests on standalone desktops. diff --git a/.yamato/_run-all.yml b/.yamato/_run-all.yml index 24daf40665..e28dfb4767 100644 --- a/.yamato/_run-all.yml +++ b/.yamato/_run-all.yml @@ -129,7 +129,7 @@ run_all_webgl_builds: {% for project in projects.default -%} {% for platform in test_platforms.desktop -%} {% for editor in validation_editors.all -%} - - .yamato/webgl-build.yml#webgl_build_{{ project.name }}_{{ platform.name }}_{{ editor }} + - .yamato/webgl-test.yml#webgl_build_{{ project.name }}_{{ platform.name }}_{{ editor }} {% endfor -%} {% endfor -%} {% endfor -%} @@ -141,7 +141,7 @@ run_all_webgl_builds_trunk: dependencies: {% for project in projects.default -%} {% for platform in test_platforms.desktop -%} - - .yamato/webgl-build.yml#webgl_build_{{ project.name }}_{{ platform.name }}_trunk + - .yamato/webgl-test.yml#webgl_build_{{ project.name }}_{{ platform.name }}_trunk {% endfor -%} {% endfor -%} @@ -152,7 +152,7 @@ run_all_webgl_builds_pinnedTrunk: dependencies: {% for project in projects.default -%} {% for platform in test_platforms.desktop -%} - - .yamato/webgl-build.yml#webgl_build_{{ project.name }}_{{ platform.name }}_{{ pinnedTrunk }} + - .yamato/webgl-test.yml#webgl_build_{{ project.name }}_{{ platform.name }}_{{ pinnedTrunk }} {% endfor -%} {% endfor -%} @@ -162,7 +162,41 @@ run_all_webgl_builds_6000: dependencies: {% for project in projects.default -%} {% for platform in test_platforms.desktop -%} - - .yamato/webgl-build.yml#webgl_build_{{ project.name }}_{{ platform.name }}_6000.0 + - .yamato/webgl-test.yml#webgl_build_{{ project.name }}_{{ platform.name }}_6000.0 +{% endfor -%} +{% endfor -%} + + +# Runs all WebGL PlayMode tests (runs the produced player in a browser on a GPU agent) +run_all_webgl_tests: + name: Run All WebGl Tests + dependencies: +{% for project in projects.default -%} +{% for platform in test_platforms.webgl_test -%} +{% for editor in validation_editors.all -%} + - .yamato/webgl-test.yml#webgl_test_{{ project.name }}_{{ platform.name }}_{{ editor }} +{% endfor -%} +{% endfor -%} +{% endfor -%} + + +# Runs all WebGL PlayMode tests on trunk editor +run_all_webgl_tests_trunk: + name: Run All WebGl Tests [Trunk only] + dependencies: +{% for project in projects.default -%} +{% for platform in test_platforms.webgl_test -%} + - .yamato/webgl-test.yml#webgl_test_{{ project.name }}_{{ platform.name }}_trunk +{% endfor -%} +{% endfor -%} + +# Runs all WebGL PlayMode tests on 6000.0 editor +run_all_webgl_tests_6000: + name: Run All WebGl Tests [6000.0] + dependencies: +{% for project in projects.default -%} +{% for platform in test_platforms.webgl_test -%} + - .yamato/webgl-test.yml#webgl_test_{{ project.name }}_{{ platform.name }}_6000.0 {% endfor -%} {% endfor -%} diff --git a/.yamato/_triggers.yml b/.yamato/_triggers.yml index d70ba68fe9..10c332896b 100644 --- a/.yamato/_triggers.yml +++ b/.yamato/_triggers.yml @@ -151,6 +151,9 @@ develop_nightly: # Build player for webgl platform on trunk and 6000.0 editors - .yamato/_run-all.yml#run_all_webgl_builds_trunk - .yamato/_run-all.yml#run_all_webgl_builds_6000 + # Run WebGL PlayMode tests (browser on GPU agent) on trunk and 6000.0 editors + - .yamato/_run-all.yml#run_all_webgl_tests_trunk + - .yamato/_run-all.yml#run_all_webgl_tests_6000 # Run Runtime tests against cmb service on trunk and 6000.0 editors - .yamato/_run-all.yml#run_all_project_tests_cmb_service_trunk - .yamato/_run-all.yml#run_all_project_tests_cmb_service_6000 @@ -159,7 +162,7 @@ develop_nightly: - .yamato/project-updated-dependencies-test.yml#updated-dependencies_testproject_NGO_win_6000.0 # Run API validation to early-detect all new APIs that would force us to release new minor version of the package. Note that for this to work the package version in package.json must correspond to "actual package state" which means that it should be higher than last released version - .yamato/vetting-test.yml#vetting_test - # Run code coverage test (nightly uses actual trunk) + # Run code coverage test (nightly uses actual trunk) - .yamato/code-coverage.yml#code_coverage_project_test_testproject_ubuntu_trunk @@ -189,5 +192,7 @@ develop_weekly_trunk: - .yamato/_run-all.yml#run_all_project_tests_console_standalone # Build player for webgl platform on trunk - .yamato/_run-all.yml#run_all_webgl_builds + # Run WebGL PlayMode tests (browser on GPU agent) + - .yamato/_run-all.yml#run_all_webgl_tests # Run Runtime tests against CMB service - .yamato/_run-all.yml#run_all_project_tests_cmb_service diff --git a/.yamato/project.metafile b/.yamato/project.metafile index 3bb9aad111..c07ee08cfc 100644 --- a/.yamato/project.metafile +++ b/.yamato/project.metafile @@ -168,6 +168,15 @@ test_platforms: flavor: b1.large larger_flavor: b1.xlarge standalone: GameCoreScarlett + # WebGL runtime tests run the built player inside a browser, which requires a real GPU and display. + # We therefore run them on a GPU-backed Ubuntu VM (rtx2080). Firefox is preinstalled on the package-ci Ubuntu image. + webgl_test: + - name: ubuntu + type: Unity::VM::GPU + image: package-ci/ubuntu-22.04:v4.87.0 + flavor: b1.large + model: rtx2080 + standalone: WebGL # EDITOR CONFIGURATIONS------------------------------------------------------------------------------- # Editors to be used for testing. NGOv2.X official support started from 6000.0 editor diff --git a/.yamato/webgl-build.yml b/.yamato/webgl-test.yml similarity index 50% rename from .yamato/webgl-build.yml rename to .yamato/webgl-test.yml index 1f028ce10f..567f22448e 100644 --- a/.yamato/webgl-build.yml +++ b/.yamato/webgl-test.yml @@ -2,28 +2,36 @@ --- # DESCRIPTION-------------------------------------------------------------------------- - # This job is responsible for validating a successful building of a player on WebGl standalone platform. - # This job WILL NOT execute any tests, we only validate the building process. - # This is because WebGL runs in browser and for tests to be executed we would need to consider having a web server, browser automation and overall complex test setup which currently we don't have. + # This job is responsible for WebGL platform test validation. + # It is split into a build phase (produces the WebGL player) and a run phase (executes the produced player inside a browser to run PlayMode tests). # CONFIGURATION STRUCTURE-------------------------------------------------------------- - # Jobs configurations are generated using nested loops through: - # 1. For the default project (project is used only as a context for the build). - # 2. For all desktop platforms (Windows, Ubuntu, macOS) - # 3. For all supported Unity Editor versions (For NGOv2.X it means 6000+) + # Jobs are generated using nested loops (separate build phase and run phase). Worth noting that run phase uses the build as dependency: + # 1. Build phase runs for all desktop platforms (Windows, Ubuntu, macOS); run phase runs on a single GPU-backed Ubuntu agent. + # 2. For all supported Unity Editor versions (For NGOv2.X it means 6000+). + # 3. For the default project. # TECHNICAL CONSIDERATIONS---------------------------------------------------------------- - # WebGL requires IL2CPP scripting backend (Mono is not supported) - # We are not using ARM64 architectures since we only perform a build action. x64 architectures are preferred for build phase (in order to optimize available resource usage) - # We only perform build validation (no runtime testing) + # WebGL requires IL2CPP scripting backend (Mono is not supported). + # Build phase: + # We are not using ARM64 architectures since we only perform a build action. x64 architectures are preferred for build phase (in order to optimize available resource usage). + # Run phase: + # Running the player means launching a real browser, which needs a GPU and a display, therefore we run on a GPU-backed Ubuntu agent (Unity::VM::GPU, rtx2080). See webgl_test in project.metafile. + # We do NOT pass -nographics here (unlike the build job) because the browser needs graphics to run. + # Firefox is preinstalled on the package-ci Ubuntu image (/usr/bin/firefox). + # Passing --target-browser and --target-browser-executable explicitly is mandatory: without them UTR tries to download Firefox from Stevedore via perl, which fails on the CI agent. + # --player-connection-ip=${BOKKEN_HOST_IP} is required so the browser-hosted player can connect back to the test runner. # QUALITY CONSIDERATIONS-------------------------------------------------------------------- - # In the future we could try to implement an infrastructure to run test in webgl context but this could be quite complicated and would need to be evaluated if it's worth it - # To see where this job is included (in trigger job definitions) look into _triggers.yml file - # WebGL jobs were timing up more often in develop-2.0.0 branch (especially on trunk) so we increased the timeout from 1800 to 3600. We should investigate why it times more often in develop-2.0.0/ubuntu/trunk + # WebGL failures are infrequent and the build is slow, so this job is placed on Nightly/Weekly (QV) only, not on PR triggers. + # Runtime platform exclusions (RuntimePlatform.WebGLPlayer) are intentionally not pre-added; they are introduced reactively after the first real CI run. + # To see where this job is included (in trigger job definitions) look into _triggers.yml file. + # WebGL jobs were timing up more often in develop-2.0.0 branch (especially on trunk) so we increased the timeout from 1800 to 3600. We should investigate why it times more often in develop-2.0.0/ubuntu/trunk. #-------------------------------------------------------------------------------------- + +# BUILD PHASE CONFIGURATION------------------------------------------------------------------------------------ {% for project in projects.default -%} {% for platform in test_platforms.desktop -%} {% for editor in validation_editors.all -%} @@ -47,10 +55,37 @@ webgl_build_{{ project.name }}_{{ platform.name }}_{{ editor }}: # This will perform only building phase (--build-only) with a timeout set by the test_timeout variable in the project metafile. - UnifiedTestRunner --suite=playmode --platform=WebGL --scripting-backend=il2cpp --testproject={{ project.path }} --editor-location=.Editor --artifacts_path=artifacts --player-save-path=build/players --extra-editor-arg=-batchmode --extra-editor-arg=-nographics --reruncount=1 --clean-library-on-rerun --build-only --timeout={{ test_timeout }} artifacts: + players: + paths: + - "build/players/**/*" logs: paths: - "artifacts/**/*" - - "build/players/**/*" +{% endfor -%} +{% endfor -%} +{% endfor -%} + + +# RUN PHASE CONFIGURATION------------------------------------------------------------------------------------ +{% for project in projects.default -%} +{% for platform in test_platforms.webgl_test -%} +{% for editor in validation_editors.all -%} +webgl_test_{{ project.name }}_{{ platform.name }}_{{ editor }}: + name: WebGl Test - {{ project.name }} [{{ platform.name }}, {{ editor }}, il2cpp] + agent: + type: {{ platform.type }} + image: {{ platform.image }} + flavor: {{ platform.flavor }} + model: {{ platform.model }} # GPU model required to run a browser (more information in project.metafile) + commands: + - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor -c webgl -c il2cpp # Downloading the editor with additional webgl and il2cpp components + - UnifiedTestRunner --suite=playmode --platform=WebGL --scripting-backend=il2cpp --testproject={{ project.path }} --editor-location=.Editor --artifacts_path=artifacts --player-load-path=build/players --target-browser=Firefox --target-browser-executable=/usr/bin/firefox --player-connection-ip=${BOKKEN_HOST_IP} --reruncount=1 --clean-library-on-rerun --timeout={{ test_timeout }} + artifacts: + logs: + paths: + - "artifacts/**/*" + dependencies: + - .yamato/webgl-test.yml#webgl_build_{{ project.name }}_ubuntu_{{ editor }} {% endfor -%} {% endfor -%} {% endfor -%} From 1edbd8492b5bcf4076acc80e3aa18bd99483a43e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Chrobot?= Date: Tue, 4 Aug 2026 16:29:15 +0200 Subject: [PATCH 3/5] corrected images --- .yamato/console-standalone-test.yml | 12 ++++++------ .yamato/project.metafile | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.yamato/console-standalone-test.yml b/.yamato/console-standalone-test.yml index 6af97cdf65..1bfc6af893 100644 --- a/.yamato/console-standalone-test.yml +++ b/.yamato/console-standalone-test.yml @@ -54,12 +54,12 @@ console_standalone_build_{{ project.name }}_{{ platform.name }}_{{ editor }}: variables: # PS4 related SCE_ORBIS_SDK_DIR: 'C:\Users\bokken\SCE\ps4_sdk_12_00' -# PS5 related --> playstation/ps5-buildandexecute image ships SDK 13.000. +# PS5 related --> win10-ps5:v4 ships SDK 13.000 but defaults SCE_PROSPERO_SDK_DIR to an unsupported version, so set it explicitly. SCE_PROSPERO_SDK_DIR: 'C:\Program Files (x86)\SCE\Prospero SDKs\13.000' SHADER_COMPILER_PATH: '${SCE_PROSPERO_SDK_DIR}\host_tools\bin' SCE_ROOT_DIR: 'C:\Program Files (x86)\SCE' -# Switch related - NINTENDO_SDK_ROOT: 'C:\Nintendo\nx_sdk-22_2_0\NintendoSDK' +# Switch related --> win10-switch:v4 unsets NINTENDO_SDK_ROOT, so set it explicitly to the installed SDK 22.2.0. + NINTENDO_SDK_ROOT: 'C:\Nintendo\nintendosdk-en-22_2_0\NintendoSDK' UNITY_NINTENDOSDK_CLI_TOOLS: '${NINTENDO_SDK_ROOT}\Tools\CommandLineTools' artifacts: players: @@ -93,12 +93,12 @@ console_standalone_test_{{ project.name }}_{{ platform.name }}_{{ editor }}: variables: # PS4 related SCE_ORBIS_SDK_DIR: 'C:\Users\bokken\SCE\ps4_sdk_12_00' -# PS5 related --> playstation/ps5-buildandexecute image ships SDK 13.000. +# PS5 related --> win10-ps5:v4 ships SDK 13.000 but defaults SCE_PROSPERO_SDK_DIR to an unsupported version, so set it explicitly. SCE_PROSPERO_SDK_DIR: 'C:\Program Files (x86)\SCE\Prospero SDKs\13.000' SHADER_COMPILER_PATH: '${SCE_PROSPERO_SDK_DIR}\host_tools\bin' SCE_ROOT_DIR: 'C:\Program Files (x86)\SCE' -# Switch related - NINTENDO_SDK_ROOT: 'C:\Nintendo\nx_sdk-22_2_0\NintendoSDK' +# Switch related --> win10-switch:v4 unsets NINTENDO_SDK_ROOT, so set it explicitly to the installed SDK 22.2.0. + NINTENDO_SDK_ROOT: 'C:\Nintendo\nintendosdk-en-22_2_0\NintendoSDK' UNITY_NINTENDOSDK_CLI_TOOLS: '${NINTENDO_SDK_ROOT}\Tools\CommandLineTools' artifacts: logs: diff --git a/.yamato/project.metafile b/.yamato/project.metafile index c07ee08cfc..a1ff52dbad 100644 --- a/.yamato/project.metafile +++ b/.yamato/project.metafile @@ -111,10 +111,10 @@ test_platforms: flavor: b1.large larger_flavor: b1.xlarge standalone: PS4 - # ps5 uses the PlayStation team image (SDK 13.000); package-ci/win10-ps5:v4 only ships SDK 9.00. + # ps5: win10-ps5:v4 defaults SCE_PROSPERO_SDK_DIR to an unsupported SDK, so it is overridden to 13.000 in console-standalone-test.yml. - name: ps5 type: Unity::VM - image: playstation/ps5-buildandexecute:v10.8.7 + image: package-ci/win10-ps5:v4 flavor: b1.large larger_flavor: b1.xlarge standalone: PS5 @@ -145,7 +145,7 @@ test_platforms: standalone: PS4 - name: ps5 type: Unity::console::ps5 - image: playstation/ps5-buildandexecute:v10.8.7 + image: package-ci/win10-ps5:v4 flavor: b1.large larger_flavor: b1.xlarge standalone: PS5 From 44ca1aded644f5003658e0fb648e6280926bc043 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Chrobot?= Date: Wed, 5 Aug 2026 10:59:17 +0200 Subject: [PATCH 4/5] disabled webgl test --- testproject/Assets/Tests/Runtime/AddressablesTests.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/testproject/Assets/Tests/Runtime/AddressablesTests.cs b/testproject/Assets/Tests/Runtime/AddressablesTests.cs index 7dd8aff688..31ca6055d7 100644 --- a/testproject/Assets/Tests/Runtime/AddressablesTests.cs +++ b/testproject/Assets/Tests/Runtime/AddressablesTests.cs @@ -17,6 +17,7 @@ namespace TestProject.RuntimeTests [TestFixture(HostOrServer.DAHost)] [TestFixture(HostOrServer.Host)] [TestFixture(HostOrServer.Server)] + [UnityPlatform(exclude = new[] { RuntimePlatform.WebGLPlayer })] // Addressables content is served over HTTP, which the WebGL CI player cannot reach - MTT-15569 public class AddressablesTests : NetcodeIntegrationTest { protected override int NumberOfClients => 2; From 9ee92daf69030dd09beee41f9242940e20e63087 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Chrobot?= Date: Wed, 5 Aug 2026 11:11:51 +0200 Subject: [PATCH 5/5] adjustments --- .yamato/console-standalone-test.yml | 2 +- .../Tests/Runtime/TransformInterpolationTests.cs | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.yamato/console-standalone-test.yml b/.yamato/console-standalone-test.yml index 1bfc6af893..9d9492f580 100644 --- a/.yamato/console-standalone-test.yml +++ b/.yamato/console-standalone-test.yml @@ -50,7 +50,7 @@ console_standalone_build_{{ project.name }}_{{ platform.name }}_{{ editor }}: {% endif %} commands: - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor -c il2cpp -c {{ platform.name }} - - UnifiedTestRunner --testproject={{ project.path }} --architecture={% if platform.name == "switch" %}arm64{% else %}x64{% endif %} --scripting-backend=il2cpp --suite=playmode --platform={{ platform.standalone }} --editor-location=.Editor --artifacts-path=artifacts --player-save-path=build/players --testfilter="Unity.Netcode.RuntimeTests.*" --extra-editor-arg=-batchmode --extra-editor-arg=-nographics --reruncount=1 --clean-library-on-rerun --build-only --timeout={{ test_timeout}} + - UnifiedTestRunner --testproject={{ project.path }} --architecture={% if platform.name == "switch" %}arm64{% else %}x64{% endif %} --scripting-backend=il2cpp --suite=playmode --platform={{ platform.standalone }} --editor-location=.Editor --artifacts-path=artifacts --player-save-path=build/players --testfilter="Unity.Netcode.RuntimeTests.*" --extra-editor-arg=-batchmode --extra-editor-arg=-nographics{% if platform.name == "switch" %} --extra-editor-arg=-overrideTextureCompression --extra-editor-arg=ForceUncompressed{% endif %} --reruncount=1 --clean-library-on-rerun --build-only --timeout={{ test_timeout}} variables: # PS4 related SCE_ORBIS_SDK_DIR: 'C:\Users\bokken\SCE\ps4_sdk_12_00' diff --git a/com.unity.netcode.gameobjects/Tests/Runtime/TransformInterpolationTests.cs b/com.unity.netcode.gameobjects/Tests/Runtime/TransformInterpolationTests.cs index 4e29237a82..20bcefb62c 100644 --- a/com.unity.netcode.gameobjects/Tests/Runtime/TransformInterpolationTests.cs +++ b/com.unity.netcode.gameobjects/Tests/Runtime/TransformInterpolationTests.cs @@ -11,11 +11,15 @@ namespace Unity.Netcode.RuntimeTests internal class TransformInterpolationObject : NetworkTransform { public static bool TestComplete = false; - // Set the minimum threshold which we will use as our margin of error -#if UNITY_EDITOR + // Set the minimum threshold which we will use as our margin of error. + // Consoles interpolate with lower floating point precision, so they need additional room for error. + // The platform define is set both in a console player and in the editor when it targets a console, + // which covers console tests whether they run on-device or through the editor playmode harness. +#if UNITY_PS4 || UNITY_PS5 || UNITY_SWITCH || UNITY_GAMECORE + public const float MinThreshold = 0.009999f; +#elif UNITY_EDITOR public const float MinThreshold = 0.00555555f; #else - // Add additional room for error on console tests public const float MinThreshold = 0.009999f; #endif