From 1d85fc4502cb1d921ff35d5533706c5ca9398c30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Chrobot?= Date: Fri, 2 Oct 2026 14:02:02 +0200 Subject: [PATCH 1/4] Updated NetcodeConfig in minimalproject --- minimalproject/Assets/NetcodeConfig.asset | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/minimalproject/Assets/NetcodeConfig.asset b/minimalproject/Assets/NetcodeConfig.asset index befa0836b4..630b6989db 100644 --- a/minimalproject/Assets/NetcodeConfig.asset +++ b/minimalproject/Assets/NetcodeConfig.asset @@ -13,7 +13,7 @@ MonoBehaviour: m_Name: NetcodeConfig m_EditorClassIdentifier: Unity.NetCode::Unity.NetCode.NetCodeConfig IsGlobalConfig: 1 - EnableClientServerBootstrap: 1 + EnableClientServerBootstrap: 0 ClientServerTickRate: SimulationTickRate: 60 PredictedFixedStepSimulationTickRatio: 1 From 2d8c7cdc5ff3fb610c21106a63198bcb4b4c9208 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Chrobot?= Date: Fri, 2 Oct 2026 14:02:36 +0200 Subject: [PATCH 2/4] Updated CI configuration with architecture and coreclr players --- .yamato/_run-all.yml | 42 +++++++++++++++-- .yamato/api-updater-test.yml | 2 +- .yamato/cmb-service-standalone-tests.yml | 11 +++-- .yamato/code-coverage.yml | 4 +- .yamato/console-standalone-test.yml | 4 +- .yamato/desktop-standalone-tests.yml | 20 ++++++-- .yamato/mobile-standalone-test.yml | 6 +-- .yamato/package-tests.yml | 4 +- .yamato/performance-tests.yml | 4 +- .yamato/project-standards.yml | 7 ++- .yamato/project-tests.yml | 4 +- .yamato/project-updated-dependencies-test.yml | 2 +- .yamato/project.metafile | 47 +++++++++++++++++-- .yamato/unified-tests.yml | 2 +- .yamato/webgl-build.yml | 2 +- 15 files changed, 124 insertions(+), 37 deletions(-) diff --git a/.yamato/_run-all.yml b/.yamato/_run-all.yml index fad7923322..9f61f46595 100644 --- a/.yamato/_run-all.yml +++ b/.yamato/_run-all.yml @@ -145,7 +145,12 @@ run_all_project_tests_desktop_standalone: {% for platform in test_platforms.desktop -%} {% for editor in validation_editors.all -%} {% for backend in scripting_backends -%} +{% assign supported = true -%} +{% if backend == "mono" -%}{% unless mono_editors contains editor %}{% assign supported = false %}{% endunless -%}{% endif -%} +{% if backend == "coreclr" -%}{% unless coreclr_editors contains editor %}{% assign supported = false %}{% endunless -%}{% endif -%} +{% if supported -%} - .yamato/desktop-standalone-tests.yml#desktop_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ editor }} +{% endif -%} {% endfor -%} {% endfor -%} {% endfor -%} @@ -156,10 +161,16 @@ run_all_project_tests_desktop_standalone: run_all_project_tests_desktop_standalone_{{ validation_editors.latest }}: name: Run All Standalone Tests - Desktop [{{ validation_editors.latest }} only] dependencies: +{% assign editor = validation_editors.latest.first -%} {% for project in projects.default -%} {% for platform in test_platforms.desktop -%} {% for backend in scripting_backends -%} - - .yamato/desktop-standalone-tests.yml#desktop_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ validation_editors.latest }} +{% assign supported = true -%} +{% if backend == "mono" -%}{% unless mono_editors contains editor %}{% assign supported = false %}{% endunless -%}{% endif -%} +{% if backend == "coreclr" -%}{% unless coreclr_editors contains editor %}{% assign supported = false %}{% endunless -%}{% endif -%} +{% if supported -%} + - .yamato/desktop-standalone-tests.yml#desktop_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ editor }} +{% endif -%} {% endfor -%} {% endfor -%} {% endfor -%} @@ -168,10 +179,16 @@ run_all_project_tests_desktop_standalone_{{ validation_editors.latest }}: run_all_project_tests_desktop_standalone_{{ validation_editors.minimal }}: name: Run All Standalone Tests - Desktop [{{ validation_editors.minimal }}] dependencies: +{% assign editor = validation_editors.minimal.first -%} {% for project in projects.default -%} {% for platform in test_platforms.desktop -%} {% for backend in scripting_backends -%} - - .yamato/desktop-standalone-tests.yml#desktop_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ validation_editors.minimal }} +{% assign supported = true -%} +{% if backend == "mono" -%}{% unless mono_editors contains editor %}{% assign supported = false %}{% endunless -%}{% endif -%} +{% if backend == "coreclr" -%}{% unless coreclr_editors contains editor %}{% assign supported = false %}{% endunless -%}{% endif -%} +{% if supported -%} + - .yamato/desktop-standalone-tests.yml#desktop_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ editor }} +{% endif -%} {% endfor -%} {% endfor -%} {% endfor -%} @@ -253,7 +270,12 @@ run_all_project_tests_cmb_service: {% for platform in test_platforms.default -%} {% for editor in validation_editors.all -%} {% for backend in scripting_backends -%} +{% assign supported = true -%} +{% if backend == "mono" -%}{% unless mono_editors contains editor %}{% assign supported = false %}{% endunless -%}{% endif -%} +{% if backend == "coreclr" -%}{% unless coreclr_editors contains editor %}{% assign supported = false %}{% endunless -%}{% endif -%} +{% if supported -%} - .yamato/cmb-service-standalone-tests.yml#cmb_service_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ editor }} +{% endif -%} {% endfor -%} {% endfor -%} {% endfor -%} @@ -263,10 +285,16 @@ run_all_project_tests_cmb_service: run_all_project_tests_cmb_service_{{ validation_editors.latest }}: name: Run All CMB Service Tests [{{ validation_editors.latest }} only] dependencies: +{% assign editor = validation_editors.latest.first -%} {% for project in projects.default -%} {% for platform in test_platforms.default -%} {% for backend in scripting_backends -%} - - .yamato/cmb-service-standalone-tests.yml#cmb_service_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ validation_editors.latest }} +{% assign supported = true -%} +{% if backend == "mono" -%}{% unless mono_editors contains editor %}{% assign supported = false %}{% endunless -%}{% endif -%} +{% if backend == "coreclr" -%}{% unless coreclr_editors contains editor %}{% assign supported = false %}{% endunless -%}{% endif -%} +{% if supported -%} + - .yamato/cmb-service-standalone-tests.yml#cmb_service_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ editor }} +{% endif -%} {% endfor -%} {% endfor -%} {% endfor -%} @@ -275,10 +303,16 @@ run_all_project_tests_cmb_service_{{ validation_editors.latest }}: run_all_project_tests_cmb_service_{{ validation_editors.minimal }}: name: Run All CMB Service Tests [{{ validation_editors.minimal }}] dependencies: +{% assign editor = validation_editors.minimal.first -%} {% for project in projects.default -%} {% for platform in test_platforms.default -%} {% for backend in scripting_backends -%} - - .yamato/cmb-service-standalone-tests.yml#cmb_service_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ validation_editors.minimal }} +{% assign supported = true -%} +{% if backend == "mono" -%}{% unless mono_editors contains editor %}{% assign supported = false %}{% endunless -%}{% endif -%} +{% if backend == "coreclr" -%}{% unless coreclr_editors contains editor %}{% assign supported = false %}{% endunless -%}{% endif -%} +{% if supported -%} + - .yamato/cmb-service-standalone-tests.yml#cmb_service_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ editor }} +{% endif -%} {% endfor -%} {% endfor -%} {% endfor -%} diff --git a/.yamato/api-updater-test.yml b/.yamato/api-updater-test.yml index 5ddcaf4c17..2629312cf1 100644 --- a/.yamato/api-updater-test.yml +++ b/.yamato/api-updater-test.yml @@ -39,7 +39,7 @@ api_updater_test_{{ platform.name }}_{{ editor }}: image: {{ platform.image }} flavor: {{ platform.flavor }} commands: - - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor # Installing basic editor for the import + - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor --arch {{ platform.architecture }} # Installing basic editor for the import - python apiupdaterproject/run_upgrade_test.py --unity .Editor --clean - python apiupdaterproject/run_upgrade_test.py --unity .Editor --clean --collision-stub artifacts: diff --git a/.yamato/cmb-service-standalone-tests.yml b/.yamato/cmb-service-standalone-tests.yml index 145a9c1618..c89eab16f6 100644 --- a/.yamato/cmb-service-standalone-tests.yml +++ b/.yamato/cmb-service-standalone-tests.yml @@ -13,7 +13,7 @@ # 1. For all desktop platform (Windows, macOS, Ubuntu) # 2. For all supported Unity Editor versions (for NGOv2.X this means 6000.0+ editors) # 3. For the default project. - # 4. For all scripting backends (mono, il2cpp) + # 4. For all scripting backends (mono, il2cpp, coreclr), filtered per editor via mono_editors/coreclr_editors in project.metafile # TECHNICAL CONSIDERATIONS--------------------------------------------------------------- # For desktop devices a split is into two phases is not required but we use it for consistency with setup of others standalone platforms: @@ -31,8 +31,12 @@ {% for platform in test_platforms.default -%} {% for editor in validation_editors.all -%} {% for backend in scripting_backends -%} +{% assign supported = true -%} +{% if backend == "mono" -%}{% unless mono_editors contains editor %}{% assign supported = false %}{% endunless -%}{% endif -%} +{% if backend == "coreclr" -%}{% unless coreclr_editors contains editor %}{% assign supported = false %}{% endunless -%}{% endif -%} +{% if supported -%} cmb_service_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ editor }}: - name : CMB Service Test - NGO {{ project.name }} - [{{ platform.name }}, {{ editor }}, {{ backend }}] + name : CMB Service Test - NGO {{ project.name }} - [{{ platform.name }}, {{ platform.architecture }}, {{ editor }}, {{ backend }}] agent: type: {{ platform.type }} image: {{ platform.image }} @@ -56,7 +60,7 @@ cmb_service_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }} # run_cmb_service.sh builds and starts a release version of the full CMB service (along with the limited echo server) - ./Tools/CI/service.cmb/run_cmb_service.sh -e $ECHO_SERVER_PORT -s $CMB_SERVICE_PORT -l artifacts - - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor {% if backend == "il2cpp" %} -c il2cpp {% endif %} {% if platform.name == "mac" %} --arch arm64 {% endif %} # For macOS we use ARM64 models + - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor {% if backend == "il2cpp" %} -c il2cpp {% endif %}{% if backend == "coreclr" %}{% unless coreclr_runtime_editors contains editor %} -c {{ platform.coreclr_component }} {% endunless %}{% endif %} --arch {{ platform.architecture }} - UnifiedTestRunner --suite=playmode --player-load-path=build/players --artifacts-path=test-results --testproject={{ project.path }} --editor-location=.Editor --playergraphicsapi=Null --fail-on-assert --rerun-strategy=Test --retry={{ num_test_retries }} --clean-library-on-rerun --timeout={{ test_timeout }} artifacts: logs: @@ -64,6 +68,7 @@ cmb_service_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }} - "test-results/**/*" dependencies: - .yamato/desktop-standalone-tests.yml#desktop_standalone_build_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ editor }} +{% endif -%} {% endfor -%} {% endfor -%} {% endfor -%} diff --git a/.yamato/code-coverage.yml b/.yamato/code-coverage.yml index 3b2062b399..ef9c67044d 100644 --- a/.yamato/code-coverage.yml +++ b/.yamato/code-coverage.yml @@ -27,7 +27,7 @@ {% for platform in test_platforms.default -%} {% for project in projects.default -%} code_coverage_project_test_{{ project.name }}_{{ platform.name }}_{{ validation_editors.default }}: - name: '[Code Coverage] Project Test - NGO {{ project.name }} [{{ platform.name }}, {{ validation_editors.default }}]' + name: '[Code Coverage] Project Test - NGO {{ project.name }} [{{ platform.name }}, {{ platform.architecture }}, {{ validation_editors.default }}, {% if coreclr_runtime_editors contains validation_editors.default.first %}coreclr{% else %}mono{% endif %}]' agent: type: {{ platform.type }} image: {{ platform.image }} @@ -36,7 +36,7 @@ code_coverage_project_test_{{ project.name }}_{{ platform.name }}_{{ validation_ model: {{ platform.model }} # This is set only in platforms where we want non-default model to use (more information in project.metafile) {% endif %} commands: - - unity-downloader-cli --fast --wait -u {{ validation_editors.default }} -c Editor {% if platform.name == "mac" %} --arch arm64 {% endif %} # For macOS we use ARM64 models + - unity-downloader-cli --fast --wait -u {{ validation_editors.default }} -c Editor --arch {{ platform.architecture }} - UnifiedTestRunner --testproject={{ project.path }} --suite=editor --suite=playmode --editor-location=.Editor --enable-code-coverage --coverage-upload-options="reportsDir:$PWD/test-results/CoverageResults;name:NGOv2_project_{{ project.name }}_{{ platform.name }};flags:NGOv2_project_{{ project.name }}_{{ platform.name }};verbose" --coverage-results-path=$PWD/test-results/CoverageResults --coverage-options="generateHtmlReport;generateAdditionalMetrics;assemblyFilters:+Unity.Netcode.Editor,+Unity.Netcode.Runtime" --extra-editor-arg=--burst-disable-compilation --timeout={{ test_timeout }} --rerun-strategy=Test --retry={{ num_test_retries }} --clean-library-on-rerun --artifacts-path=test-results artifacts: logs: diff --git a/.yamato/console-standalone-test.yml b/.yamato/console-standalone-test.yml index 9574e07e1b..8a19417478 100644 --- a/.yamato/console-standalone-test.yml +++ b/.yamato/console-standalone-test.yml @@ -49,7 +49,7 @@ console_standalone_build_{{ project.name }}_{{ platform.name }}_{{ editor }}: model: {{ platform.model }} # This is set only in platforms where we want non-default model to use (more information in project.metafile) {% endif %} commands: - - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor -c il2cpp -c {{ platform.name }} + - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor -c il2cpp -c {{ platform.name }} --arch {{ platform.architecture }} - 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 @@ -88,7 +88,7 @@ console_standalone_test_{{ project.name }}_{{ platform.name }}_{{ editor }}: model: {{ platform.model }} # This is set only in platforms where we want non-default model to use (more information in project.metafile) {% endif %} commands: - - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor -c il2cpp -c {{ platform.name }} + - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor -c il2cpp -c {{ platform.name }} --arch {{ platform.architecture }} - UnifiedTestRunner --suite=playmode --testproject={{ project.path }} --editor-location=.Editor --artifacts-path=test-results --player-load-path=build/players --fail-on-assert --rerun-strategy=Test --retry={{ num_test_retries }} --clean-library-on-rerun --timeout={{ test_timeout }} variables: # PS4 related diff --git a/.yamato/desktop-standalone-tests.yml b/.yamato/desktop-standalone-tests.yml index 551b8a91d3..1118e11cab 100644 --- a/.yamato/desktop-standalone-tests.yml +++ b/.yamato/desktop-standalone-tests.yml @@ -10,7 +10,7 @@ # 1. For all desktop platform (Windows, macOS, Ubuntu) # 2. For all supported Unity Editor versions (for NGOv2.X this means 6000.0+ editors) # 3. For the default project. - # 4. For all scripting backends (mono, il2cpp) + # 4. For all scripting backends (mono, il2cpp, coreclr), filtered per editor via mono_editors/coreclr_editors in project.metafile # TECHNICAL CONSIDERATIONS--------------------------------------------------------------- # For desktop devices a split is into two phases is not required but we use it for consistency with setup of others standalone platforms: @@ -33,8 +33,12 @@ {% for platform in test_platforms.desktop -%} {% for editor in validation_editors.all -%} {% for backend in scripting_backends -%} +{% assign supported = true -%} +{% if backend == "mono" -%}{% unless mono_editors contains editor %}{% assign supported = false %}{% endunless -%}{% endif -%} +{% if backend == "coreclr" -%}{% unless coreclr_editors contains editor %}{% assign supported = false %}{% endunless -%}{% endif -%} +{% if supported -%} desktop_standalone_build_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ editor }}: - name : Standalone Build - NGO {{ project.name }} - [{{ platform.name }}, {{ editor }}, {{ backend }}] + name : Standalone Build - NGO {{ project.name }} - [{{ platform.name }}, {{ platform.architecture }}, {{ editor }}, {{ backend }}] agent: type: {% if platform.name == "mac" %} {{ platform.type }} {% else %} {{ platform.type }} {% endif %} image: {{ platform.image }} @@ -43,7 +47,7 @@ desktop_standalone_build_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ model: {{ platform.model }} # This is set only in platforms where we want non-default model to use (more information in project.metafile) {% endif %} commands: - - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor {% if backend == "il2cpp" %} -c il2cpp {% endif %} + - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor {% if backend == "il2cpp" %} -c il2cpp {% endif %}{% if backend == "coreclr" %}{% unless coreclr_runtime_editors contains editor %} -c {{ platform.coreclr_component }} {% endunless %}{% endif %} --arch {{ platform.architecture }} - UnifiedTestRunner --suite=playmode --platform={{ platform.standalone }} --editor-location=.Editor --testproject={{ project.path }} --scripting-backend={{ backend }} --testfilter="Unity.Netcode.RuntimeTests.*" --player-save-path=build/players --artifacts-path=artifacts --extra-editor-arg=-batchmode --extra-editor-arg=-nographics --reruncount=1 --clean-library-on-rerun --build-only --timeout={{ test_timeout }} artifacts: players: @@ -55,6 +59,7 @@ desktop_standalone_build_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ dependencies: - .yamato/_run-all.yml#run_quick_checks # initial checks to perform fast validation of common errors - .yamato/package-pack.yml#package_pack_-_ngo_{{ platform.name }} +{% endif -%} {% endfor -%} {% endfor -%} {% endfor -%} @@ -68,8 +73,12 @@ desktop_standalone_build_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ {% for platform in test_platforms.desktop -%} {% for editor in validation_editors.all -%} {% for backend in scripting_backends -%} +{% assign supported = true -%} +{% if backend == "mono" -%}{% unless mono_editors contains editor %}{% assign supported = false %}{% endunless -%}{% endif -%} +{% if backend == "coreclr" -%}{% unless coreclr_editors contains editor %}{% assign supported = false %}{% endunless -%}{% endif -%} +{% if supported -%} desktop_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ editor }}: - name : Standalone Test - NGO {{ project.name }} - [{{ platform.name }}, {{ editor }}, {{ backend }}] + name : Standalone Test - NGO {{ project.name }} - [{{ platform.name }}, {{ platform.architecture }}, {{ editor }}, {{ backend }}] agent: type: {% if platform.name == "mac" %} {{ platform.type }} {% else %} {{ platform.type }} {% endif %} image: {{ platform.image }} @@ -79,7 +88,7 @@ desktop_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ {% endif %} commands: - - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor {% if backend == "il2cpp" %} -c il2cpp {% endif %} {% if platform.name == "mac" %} --arch arm64 {% endif %} # For macOS we use ARM64 models + - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor {% if backend == "il2cpp" %} -c il2cpp {% endif %}{% if backend == "coreclr" %}{% unless coreclr_runtime_editors contains editor %} -c {{ platform.coreclr_component }} {% endunless %}{% endif %} --arch {{ platform.architecture }} - UnifiedTestRunner --suite=playmode --player-load-path=build/players --artifacts-path=test-results --testproject={{ project.path }} --editor-location=.Editor --playergraphicsapi=Null --fail-on-assert --rerun-strategy=Test --retry={{ num_test_retries }} --clean-library-on-rerun --timeout={{ test_timeout }} artifacts: logs: @@ -87,6 +96,7 @@ desktop_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ - "test-results/**/*" dependencies: - .yamato/desktop-standalone-tests.yml#desktop_standalone_build_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ editor }} +{% endif -%} {% endfor -%} {% endfor -%} {% endfor -%} diff --git a/.yamato/mobile-standalone-test.yml b/.yamato/mobile-standalone-test.yml index 4bb41db94e..1c61148c8c 100644 --- a/.yamato/mobile-standalone-test.yml +++ b/.yamato/mobile-standalone-test.yml @@ -54,8 +54,8 @@ mobile_standalone_build_{{ project.name }}_{{ platform.name }}_{{ editor }}: variables: UNITY_HANDLEUIINTERRUPTIONS: 1 commands: - - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor -c il2cpp {% if platform.base == "mac" %} -c ios {% else %} -c android {% endif %} - - UnifiedTestRunner --suite=playmode --platform={{ platform.standalone }} --testproject={{ project.path }} --architecture={{ platform.architecture }} --scripting-backend=il2cpp --editor-location=.Editor --artifacts-path=artifacts --testfilter="Unity.Netcode.RuntimeTests.*" --player-save-path=build/players --extra-editor-arg=-batchmode --extra-editor-arg=-nographics --reruncount=1 --clean-library-on-rerun --build-only --timeout={{ test_timeout }} + - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor -c il2cpp {% if platform.base == "mac" %} -c ios {% else %} -c android {% endif %} --arch {{ platform.architecture }} + - UnifiedTestRunner --suite=playmode --platform={{ platform.standalone }} --testproject={{ project.path }} --architecture={{ platform.target_architecture }} --scripting-backend=il2cpp --editor-location=.Editor --artifacts-path=artifacts --testfilter="Unity.Netcode.RuntimeTests.*" --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: @@ -83,7 +83,7 @@ mobile_standalone_test_{{ project.name }}_{{ platform.name }}_{{ editor }}: {% endif %} commands: # Installing editor. We still need the editor to run tests on standalone build and for that the Editor is required - - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor -c il2cpp {% if platform.base == "mac" %} -c ios {% else %} -c android {% endif %} + - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor -c il2cpp {% if platform.base == "mac" %} -c ios {% else %} -c android {% endif %} --arch {{ platform.architecture }} {% if platform.standalone == "Android" %} # Download standalone UnityTestRunner and ADB setup diff --git a/.yamato/package-tests.yml b/.yamato/package-tests.yml index 5d6364c526..a91c075945 100644 --- a/.yamato/package-tests.yml +++ b/.yamato/package-tests.yml @@ -27,7 +27,7 @@ {% for platform in test_platforms.desktop -%} {% for editor in validation_editors.all -%} package_test_-_ngo_{{ platform.name }}_{{ editor }}: - name : Package Test - NGO [{{ platform.name }}, {{ editor }}] + name : Package Test - NGO [{{ platform.name }}, {{ platform.architecture }}, {{ editor }}, {% if coreclr_runtime_editors contains editor %}coreclr{% else %}mono{% endif %}] agent: type: {{ platform.type }} image: {{ platform.image }} @@ -39,7 +39,7 @@ package_test_-_ngo_{{ platform.name }}_{{ editor }}: XRAY_PROFILE: "gold ./pvpExceptions.json rme" UNITY_EXT_LOGGING: 1 commands: - - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor {% if platform.name == "mac" %} --arch arm64 {% endif %} # For macOS we use ARM64 models. + - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor --arch {{ platform.architecture }} # Validate PVP checks for package. - upm-pvp test --unity .Editor --packages "upm-ci~/packages/*.tgz" --filter "com.unity.netcode.gameobjects" --results pvp-results diff --git a/.yamato/performance-tests.yml b/.yamato/performance-tests.yml index 8e61084715..54bec179b3 100644 --- a/.yamato/performance-tests.yml +++ b/.yamato/performance-tests.yml @@ -26,7 +26,7 @@ {% for editor in validation_editors.all -%} {% for project in projects.default -%} performance_editor_tests_-_NGO_{{ platform.name }}_{{ editor }}_no_data_reporting: - name : Performance editor Tests - NGO {{ project.name }} [{{ platform.name }}, {{ editor }}] (No Data Reporting) + name : Performance editor Tests - NGO {{ project.name }} [{{ platform.name }}, {{ platform.architecture }}, {{ editor }}, {% if coreclr_runtime_editors contains editor %}coreclr{% else %}mono{% endif %}] (No Data Reporting) agent: type: {{ platform.type }} image: {{ platform.image }} @@ -35,7 +35,7 @@ performance_editor_tests_-_NGO_{{ platform.name }}_{{ editor }}_no_data_reportin model: {{ platform.model }} # This is set only in platforms where we want non-default model to use (more information in project.metafile) {% endif %} commands: - - unity-downloader-cli -u {{ editor }} -c Editor --wait {% if platform.name == "mac" %} --arch arm64 {% endif %} # For macOS we use ARM64 models. Installing basic editor + - unity-downloader-cli -u {{ editor }} -c Editor --wait --arch {{ platform.architecture }} # Installing basic editor - UnifiedTestRunner --suite=editor --suite=playmode --testproject={{ project.path }} --editor-location=.Editor --timeout=3600 --artifacts-path=artifacts --extra-editor-arg=-assemblyNames --extra-editor-arg=Unity.NetCode.* --extra-editor-arg=-testCategory --extra-editor-arg=Performance --extra-editor-arg=-enablePackageManagerTraces --rerun-strategy=Test --retry={{ num_test_retries }} --clean-library-on-rerun --dontreportperformancedata # TODO: when performance tests will be present we need to add actuall execution of this test artifacts: diff --git a/.yamato/project-standards.yml b/.yamato/project-standards.yml index 2ebae81b5e..7a0be81da1 100644 --- a/.yamato/project-standards.yml +++ b/.yamato/project-standards.yml @@ -13,7 +13,7 @@ # Jobs configurations are generated using nested loops through: # 1. For all NGO projects (testproject, testproject-tools-interation, minimalproject) # 2. For default platform only (Ubuntu) since standards would not vary between platforms (no need for checks on more platforms) - # 3. For default editor version (trunk) since standards would not vary between editors (no need for checks on more editors) + # 3. For minimal supported editor version (6000.7.0b1). Note that standards may very depending on version used (image/editor) # TECHNICAL CONSTRAINTS--------------------------------------------------------------- # Requires .NET SDK installed (should be preinstalled on the image so we just check for version) @@ -22,8 +22,7 @@ # Generates no test artifacts (pass/fail only). Eventual failure will be visible in the logs # QUALITY THOUGHTS-------------------------------------------------------------------- - # While testproject validation would be sufficient, since it validates both project and package (where package is our main concern) jobs for all projects are being generated to ensure that we conform to quality standards in all projects. - # TODO: consider modifying the approach and adding checks for minimal supported editor. In case of NGOv1.X it has proven to yield different results (But since NGOv2.X support starts from 6000.0 editor it's not that time pressuring) + # While single project validation would be sufficient, as it validates both project and package (where package is our main concern) jobs for all projects are being generated to ensure that we conform to quality standards in all projects. # To see where this job is included (in trigger job definitions) look into _triggers.yml file #------------------------------------------------------------------------------------ @@ -45,7 +44,7 @@ standards_{{ platform.name }}_{{ project.name }}_{{ editor }}: - dotnet --version - dotnet format --version - - unity-downloader-cli --fast --wait -u {{ editor }} -c editor {% if platform.name == "mac" %} --arch arm64 {% endif %} # For macOS we use ARM64 models. Downloads basic editor + - unity-downloader-cli --fast --wait -u {{ editor }} -c editor --arch {{ platform.architecture }} # Downloads basic editor - .Editor/Unity -batchmode -nographics -logFile - -executeMethod Packages.Rider.Editor.RiderScriptEditor.SyncSolution -projectPath {{ project.path }} -quit # This command is used to invoke Unity in a "headless" mode. It's used to sync the project - dotnet run --project=dotnet-tools/netcode.standards -- --project={{ project.path }} --fix # Auto-fix formatting issues - 'git diff --exit-code || (echo "ERROR: Code formatting issues found. Run dotnet run --project=dotnet-tools/netcode.standards -- --project={{ project.path }} --fix locally and commit the changes. Note that dotnet version that was used in this check depends on the image that was used so local results may differ (see the first command of this job to know which dotnet version was used)" && exit 1)' # Fail if formatter made any changes diff --git a/.yamato/project-tests.yml b/.yamato/project-tests.yml index e00c832fe1..5076004650 100644 --- a/.yamato/project-tests.yml +++ b/.yamato/project-tests.yml @@ -28,7 +28,7 @@ {% for platform in test_platforms.desktop -%} {% for editor in validation_editors.all -%} test_{{ project.name }}_{{ platform.name }}_{{ editor }}: - name : Project Test - NGO {{ project.name }} [{{ platform.name }}, {{ editor }}] + name : Project Test - NGO {{ project.name }} [{{ platform.name }}, {{ platform.architecture }}, {{ editor }}, {% if coreclr_runtime_editors contains editor %}coreclr{% else %}mono{% endif %}] agent: type: {{ platform.type }} image: {{ platform.image }} @@ -37,7 +37,7 @@ test_{{ project.name }}_{{ platform.name }}_{{ editor }}: model: {{ platform.model }} # This is set only in platforms where we want non-default model to use (more information in project.metafile) {% endif %} commands: - - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor {% if platform.name == "mac" %} --arch arm64 {% endif %} # For macOS we use ARM64 models. Installing basic editor for tests execution + - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor --arch {{ platform.architecture }} # Installing basic editor for tests execution - UnifiedTestRunner --testproject={{ project.path }} --suite=editor --suite=playmode --artifacts-path=test-results --editor-location=.Editor --rerun-strategy=Test --retry={{ num_test_retries }} --clean-library-on-rerun --timeout={{ test_timeout }} artifacts: logs: diff --git a/.yamato/project-updated-dependencies-test.yml b/.yamato/project-updated-dependencies-test.yml index 9fc85153fb..60c721e859 100644 --- a/.yamato/project-updated-dependencies-test.yml +++ b/.yamato/project-updated-dependencies-test.yml @@ -26,7 +26,7 @@ {% for platform in test_platforms.desktop -%} {% for editor in validation_editors.all -%} updated-dependencies_{{ project.name }}_NGO_{{ platform.name }}_{{ editor }}: - name : Updated Dependencies Test - NGO {{ project.name }} [{{ platform.name }}, {{ editor }}] + name : Updated Dependencies Test - NGO {{ project.name }} [{{ platform.name }}, {{ platform.architecture }}, {{ editor }}, {% if coreclr_runtime_editors contains editor %}coreclr{% else %}mono{% endif %}] agent: type: {{ platform.type }} image: {{ platform.image }} diff --git a/.yamato/project.metafile b/.yamato/project.metafile index 0622567aec..22c5cb9bb5 100644 --- a/.yamato/project.metafile +++ b/.yamato/project.metafile @@ -14,7 +14,8 @@ # standalone --> Specifies the build target platform (e.g., StandaloneLinux64, Android, IOS) # model --> Defines specific hardware model requirements (e.g., iPhone model 13). Notice that trunk currently (19.08.2025) has 13.0 as minimal iOS version which devices below this are not supporting # base --> Indicates the base operating system for build operations (e.g., win, mac) - # architecture --> Specifies the target CPU architecture (e.g., armv7, arm64) + # architecture --> CPU architecture of the agent, i.e. of the Editor installed by unity-downloader-cli (e.g., x64, arm64). Every test_platforms entry defines it + # target_architecture --> Player ABI, only defined where it differs from the agent architecture (e.g., armv7 for Android) # SMALL AGENT CONFIGURATION--------------------------------------------------------------------------------------------------- @@ -42,6 +43,8 @@ test_platforms: image: package-ci/ubuntu-22.04:v4.87.0 flavor: b1.large standalone: StandaloneLinux64 + architecture: x64 + coreclr_component: linux-coreclr # This component is only needed for 6000.7 editor where CoreCLR is not yet the default desktop: - name: ubuntu type: Unity::VM @@ -50,6 +53,8 @@ test_platforms: smaller_flavor: b1.large larger_flavor: b1.xlarge standalone: StandaloneLinux64 + architecture: x64 + coreclr_component: linux-coreclr # This component is only needed for 6000.7 editor where CoreCLR is not yet the default - name: win type: Unity::VM image: package-ci/win10:v4 @@ -57,6 +62,8 @@ test_platforms: smaller_flavor: b1.medium larger_flavor: b1.xlarge standalone: StandaloneWindows64 + architecture: x64 + coreclr_component: windows-coreclr # This component is only needed for 6000.7 editor where CoreCLR is not yet the default - name: mac type: Unity::VM::osx image: package-ci/macos-13-arm64:v4 # ARM64 to support M1 model (below) @@ -65,6 +72,8 @@ test_platforms: smaller_flavor: m1.mac larger_flavor: m1.mac standalone: StandaloneOSX + architecture: arm64 + coreclr_component: mac-coreclr # This component is only needed for 6000.7 editor where CoreCLR is not yet the default model: M1 # The default model (an x64 Intel Mac VM) quite often caused a known issue of doing all the bitflips in packages resulting in failures # For mobile devices there is a split between the build and run phase so there is a need of splitting specification for both # TODO: For android we could consider adding ARM64 configuration @@ -76,7 +85,8 @@ test_platforms: larger_flavor: b1.xlarge standalone: Android base: win - architecture: armv7 + architecture: x64 + target_architecture: armv7 # iOS modern builds are ARM64-only, thus no testing with armv7 - name: ios-arm64 type: Unity::VM::osx @@ -85,7 +95,8 @@ test_platforms: larger_flavor: m1.mac standalone: IOS base: mac - architecture: arm64 + architecture: x64 + target_architecture: arm64 mobile_test: - name: android type: Unity::mobile::shield @@ -94,7 +105,8 @@ test_platforms: larger_flavor: b1.xlarge standalone: Android base: win - architecture: armv7 + architecture: x64 + target_architecture: armv7 - name: ios-arm64 type: Unity::mobile::iPhone image: package-ci/macos-13-arm64:v4 @@ -104,6 +116,7 @@ test_platforms: standalone: IOS base: mac architecture: arm64 + target_architecture: arm64 console_build: - name: ps4 type: Unity::VM @@ -111,6 +124,7 @@ test_platforms: flavor: b1.large larger_flavor: b1.xlarge standalone: PS4 + architecture: x64 # 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 @@ -118,6 +132,7 @@ test_platforms: flavor: b1.large larger_flavor: b1.xlarge standalone: PS5 + architecture: x64 # switch --> DISABLED. SEE MTT-15636 (split from MTT-12118). 6000.x/trunk editors mandate NintendoSDK 22.2.x, but package-ci/win10-switch:v4 currently ships only nintendosdk-en-21_4_0. That fixes texture packaging but the native IL2CPP link then fails (undefined symbol std::__1::__hash_memory, from the 22_02 SwitchPlayer.a). Re-enable once PETS publishes a win10-switch image with nintendosdk-en-22_2_x. # - name: switch # type: Unity::VM @@ -125,18 +140,21 @@ test_platforms: # flavor: b1.large # larger_flavor: b1.xlarge # standalone: Switch + # architecture: x64 - name: GameCoreXboxOne type: Unity::VM image: package-ci/win10-xbox:v4 flavor: b1.large larger_flavor: b1.xlarge standalone: GameCoreXboxOne + architecture: x64 - name: GameCoreScarlett type: Unity::VM image: package-ci/win10-xbox:v4 flavor: b1.large larger_flavor: b1.xlarge standalone: GameCoreScarlett + architecture: x64 console_test: - name: ps4 type: Unity::console::ps4 @@ -144,12 +162,14 @@ test_platforms: flavor: b1.large larger_flavor: b1.xlarge standalone: PS4 + architecture: x64 - name: ps5 type: Unity::console::ps5 image: package-ci/win10-ps5:v4 flavor: b1.large larger_flavor: b1.xlarge standalone: PS5 + architecture: x64 # switch --> DISABLED. SEE MTT-15636 (needs NintendoSDK 22.2.x on the image; see console_build note). # - name: switch # type: Unity::console::switch @@ -158,18 +178,21 @@ test_platforms: # larger_flavor: b1.xlarge # standalone: Switch # base: win + # architecture: x64 - name: GameCoreXboxOne type: Unity::console::xbox image: package-ci/win10-xbox:v4 flavor: b1.large larger_flavor: b1.xlarge standalone: GameCoreXboxOne + architecture: x64 - name: GameCoreScarlett type: Unity::console::scarlett image: package-ci/win10-xbox:v4 flavor: b1.large larger_flavor: b1.xlarge standalone: GameCoreScarlett + architecture: x64 # EDITOR CONFIGURATIONS------------------------------------------------------------------------------- # Editors to be used for testing. NGOv3.X official support started from 6000.7.0b1 editor @@ -197,6 +220,22 @@ validation_editors: scripting_backends: - mono - il2cpp + - coreclr + +# Editors whose players still support Mono (removed in trunk / 7.0) +mono_editors: + - 6000.7 + +# Editors whose desktop players support CoreCLR (experimental in 6000.7) +coreclr_editors: + - 6000.7 + - dfdad7ed5522da345003b66ed78dc5e725357037 + - trunk + +# Editors that themselves run on CoreCLR instead of Mono, so editor and in-editor playmode tests run on CoreCLR +coreclr_runtime_editors: + - dfdad7ed5522da345003b66ed78dc5e725357037 + - trunk # PROJECTS CONFIGURATIONS------------------------------------------------------------------------------- diff --git a/.yamato/unified-tests.yml b/.yamato/unified-tests.yml index 7cc0bc4234..0a4296d3c7 100644 --- a/.yamato/unified-tests.yml +++ b/.yamato/unified-tests.yml @@ -42,7 +42,7 @@ unified_test_{{ project.name }}_{{ platform.name }}_{{ editor }}: # Turn the unified API on. UNIFIED_NETCODE is opt-in, and N4E keeps its GameObject bridge internal # until NETCODE_GAMEOBJECT_BRIDGE_EXPERIMENTAL is defined, so both are needed here and nowhere else. - sed -i "s/UNITY_NETCODE_NATIVE_COLLECTION_SUPPORT/UNITY_NETCODE_NATIVE_COLLECTION_SUPPORT;NETCODE_GAMEOBJECT_BRIDGE_EXPERIMENTAL;UNIFIED_NETCODE;OUT_OF_BAND_RPC/" {{ project.path }}/ProjectSettings/ProjectSettings.asset - - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor + - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor --arch {{ platform.architecture }} - UnifiedTestRunner --testproject={{ project.path }} --suite=playmode --artifacts-path=test-results --editor-location=.Editor --rerun-strategy=Test --retry={{ num_test_retries }} --clean-library-on-rerun --timeout={{ test_timeout }} artifacts: logs: diff --git a/.yamato/webgl-build.yml b/.yamato/webgl-build.yml index 1f028ce10f..593aa9a73c 100644 --- a/.yamato/webgl-build.yml +++ b/.yamato/webgl-build.yml @@ -37,7 +37,7 @@ webgl_build_{{ project.name }}_{{ platform.name }}_{{ editor }}: model: {{ platform.model }} # This is set only in platforms where we want non-default model to use (more information in project.metafile) {% endif %} commands: - - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor -c webgl -c il2cpp {% if platform.name == "mac" %} --arch arm64 {% endif %} # For macOS we use ARM64 models. Downloading the editor with additional webgl and il2cpp components + - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor -c webgl -c il2cpp --arch {{ platform.architecture }} # Downloading the editor with additional webgl and il2cpp components # The following step builds the player with defined options such as: # Suite parameter if defined since it's a mandatory field to define which test suite should be used, but it doesn't matter in this case since we won't run any tests (--suite) From 56104f7a4b8a106436a812312965fb25d3e28a1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Chrobot?= Date: Fri, 2 Oct 2026 14:05:08 +0200 Subject: [PATCH 3/4] comment cleanup --- .yamato/api-updater-test.yml | 105 +++++++++++++++++----------------- .yamato/performance-tests.yml | 2 +- .yamato/project-standards.yml | 2 +- .yamato/project-tests.yml | 2 +- 4 files changed, 56 insertions(+), 55 deletions(-) diff --git a/.yamato/api-updater-test.yml b/.yamato/api-updater-test.yml index 2629312cf1..d72cb8a00e 100644 --- a/.yamato/api-updater-test.yml +++ b/.yamato/api-updater-test.yml @@ -1,52 +1,53 @@ -{% metadata_file .yamato/project.metafile %} ---- - -# DESCRIPTION-------------------------------------------------------------------------- - # This job validates the NGO 2.x -> 3.x upgrade path for user scripts. - # NGO 3.0 renamed the editor assembly and its namespaces (Unity.Netcode.Editor -> - # Unity.Netcode.GameObjects.Editor) and moved the runtime timing types (Unity.Netcode.NetworkTime - # and friends -> Unity.Netcode.GameObjects.Timing), and every relocated public type carries a - # [MovedFrom] so that Unity's API updater rewrites a 2.x project's scripts automatically on upgrade. - # apiupdaterproject holds code written against the 2.x API; the job imports it with - # -accept-apiupdate and asserts that every 2.x type reference was rewritten and none survived. - # See apiupdaterproject/README.md. - # - # The second run adds an assembly that occupies Unity.Netcode.NetworkTimeSystem, standing in for - # any second installed package that declares the same name, and inverts the expectation for that - # one name: the updater is driven by resolution failure, so a name that still resolves cannot be - # migrated. NetworkTime and NetworkTickSystem are absent from the stub and must still migrate, so - # a pass proves both halves. - # This is the regression test for why the timing types were moved at all. - - -# TECHNICAL CONSIDERATIONS--------------------------------------------------------------- - # apiupdaterproject/Packages/manifest.json references the package by relative path - # (file:../../com.unity.netcode.gameobjects), so the job tests the package as it sits in the repo - # and needs no package-pack dependency. - # The script restores the 2.x sources when it finishes, so the checkout is left unmodified and the - # job is safe to re-run on the same agent. - # --clean purges Library first: the assertion is meaningless against a warm Library that already - # holds rewritten sources from a previous run. That is also why the two runs are sequential - # commands rather than one - each needs its own cold import, and the script removes the stub and - # restores the sources on every exit path, so the second run starts from the same state as the first. - -{% for platform in test_platforms.default -%} -{% for editor in validation_editors.default -%} -api_updater_test_{{ platform.name }}_{{ editor }}: - name : API Updater Test - NGO 2.x editor scripts upgrade [{{ platform.name }}, {{ editor }}] - agent: - type: {{ platform.type }} - image: {{ platform.image }} - flavor: {{ platform.flavor }} - commands: - - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor --arch {{ platform.architecture }} # Installing basic editor for the import - - python apiupdaterproject/run_upgrade_test.py --unity .Editor --clean - - python apiupdaterproject/run_upgrade_test.py --unity .Editor --clean --collision-stub - artifacts: - logs: - paths: - - "apiupdaterproject/upgrade-test.log" - dependencies: - - .yamato/_run-all.yml#run_quick_checks # initial checks to perform fast validation of common errors -{% endfor -%} -{% endfor -%} +{% metadata_file .yamato/project.metafile %} +--- + +# DESCRIPTION-------------------------------------------------------------------------- + # This job validates the NGO 2.x -> 3.x upgrade path for user scripts. + # NGO 3.0 renamed the editor assembly and its namespaces (Unity.Netcode.Editor -> + # Unity.Netcode.GameObjects.Editor) and moved the runtime timing types (Unity.Netcode.NetworkTime + # and friends -> Unity.Netcode.GameObjects.Timing), and every relocated public type carries a + # [MovedFrom] so that Unity's API updater rewrites a 2.x project's scripts automatically on upgrade. + # apiupdaterproject holds code written against the 2.x API; the job imports it with + # -accept-apiupdate and asserts that every 2.x type reference was rewritten and none survived. + # See apiupdaterproject/README.md. + # + # The second run adds an assembly that occupies Unity.Netcode.NetworkTimeSystem, standing in for + # any second installed package that declares the same name, and inverts the expectation for that + # one name: the updater is driven by resolution failure, so a name that still resolves cannot be + # migrated. NetworkTime and NetworkTickSystem are absent from the stub and must still migrate, so + # a pass proves both halves. + + # This is the regression test for why the timing types were moved at all. + + +# TECHNICAL CONSIDERATIONS--------------------------------------------------------------- + # apiupdaterproject/Packages/manifest.json references the package by relative path + # (file:../../com.unity.netcode.gameobjects), so the job tests the package as it sits in the repo + # and needs no package-pack dependency. + # The script restores the 2.x sources when it finishes, so the checkout is left unmodified and the + # job is safe to re-run on the same agent. + # --clean purges Library first: the assertion is meaningless against a warm Library that already + # holds rewritten sources from a previous run. That is also why the two runs are sequential + # commands rather than one - each needs its own cold import, and the script removes the stub and + # restores the sources on every exit path, so the second run starts from the same state as the first. + +{% for platform in test_platforms.default -%} +{% for editor in validation_editors.default -%} +api_updater_test_{{ platform.name }}_{{ editor }}: + name : API Updater Test - NGO 2.x editor scripts upgrade [{{ platform.name }}, {{ editor }}] + agent: + type: {{ platform.type }} + image: {{ platform.image }} + flavor: {{ platform.flavor }} + commands: + - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor --arch {{ platform.architecture }} + - python apiupdaterproject/run_upgrade_test.py --unity .Editor --clean + - python apiupdaterproject/run_upgrade_test.py --unity .Editor --clean --collision-stub + artifacts: + logs: + paths: + - "apiupdaterproject/upgrade-test.log" + dependencies: + - .yamato/_run-all.yml#run_quick_checks # initial checks to perform fast validation of common errors +{% endfor -%} +{% endfor -%} diff --git a/.yamato/performance-tests.yml b/.yamato/performance-tests.yml index 54bec179b3..645ff1d76d 100644 --- a/.yamato/performance-tests.yml +++ b/.yamato/performance-tests.yml @@ -35,7 +35,7 @@ performance_editor_tests_-_NGO_{{ platform.name }}_{{ editor }}_no_data_reportin model: {{ platform.model }} # This is set only in platforms where we want non-default model to use (more information in project.metafile) {% endif %} commands: - - unity-downloader-cli -u {{ editor }} -c Editor --wait --arch {{ platform.architecture }} # Installing basic editor + - unity-downloader-cli -u {{ editor }} -c Editor --wait --arch {{ platform.architecture }} - UnifiedTestRunner --suite=editor --suite=playmode --testproject={{ project.path }} --editor-location=.Editor --timeout=3600 --artifacts-path=artifacts --extra-editor-arg=-assemblyNames --extra-editor-arg=Unity.NetCode.* --extra-editor-arg=-testCategory --extra-editor-arg=Performance --extra-editor-arg=-enablePackageManagerTraces --rerun-strategy=Test --retry={{ num_test_retries }} --clean-library-on-rerun --dontreportperformancedata # TODO: when performance tests will be present we need to add actuall execution of this test artifacts: diff --git a/.yamato/project-standards.yml b/.yamato/project-standards.yml index 7a0be81da1..e1377b94b7 100644 --- a/.yamato/project-standards.yml +++ b/.yamato/project-standards.yml @@ -44,7 +44,7 @@ standards_{{ platform.name }}_{{ project.name }}_{{ editor }}: - dotnet --version - dotnet format --version - - unity-downloader-cli --fast --wait -u {{ editor }} -c editor --arch {{ platform.architecture }} # Downloads basic editor + - unity-downloader-cli --fast --wait -u {{ editor }} -c editor --arch {{ platform.architecture }} - .Editor/Unity -batchmode -nographics -logFile - -executeMethod Packages.Rider.Editor.RiderScriptEditor.SyncSolution -projectPath {{ project.path }} -quit # This command is used to invoke Unity in a "headless" mode. It's used to sync the project - dotnet run --project=dotnet-tools/netcode.standards -- --project={{ project.path }} --fix # Auto-fix formatting issues - 'git diff --exit-code || (echo "ERROR: Code formatting issues found. Run dotnet run --project=dotnet-tools/netcode.standards -- --project={{ project.path }} --fix locally and commit the changes. Note that dotnet version that was used in this check depends on the image that was used so local results may differ (see the first command of this job to know which dotnet version was used)" && exit 1)' # Fail if formatter made any changes diff --git a/.yamato/project-tests.yml b/.yamato/project-tests.yml index 5076004650..1a3638e362 100644 --- a/.yamato/project-tests.yml +++ b/.yamato/project-tests.yml @@ -37,7 +37,7 @@ test_{{ project.name }}_{{ platform.name }}_{{ editor }}: model: {{ platform.model }} # This is set only in platforms where we want non-default model to use (more information in project.metafile) {% endif %} commands: - - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor --arch {{ platform.architecture }} # Installing basic editor for tests execution + - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor --arch {{ platform.architecture }} - UnifiedTestRunner --testproject={{ project.path }} --suite=editor --suite=playmode --artifacts-path=test-results --editor-location=.Editor --rerun-strategy=Test --retry={{ num_test_retries }} --clean-library-on-rerun --timeout={{ test_timeout }} artifacts: logs: From 8f9e12918aa6db7248d452fd6bc6fba8b42097fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Chrobot?= Date: Fri, 2 Oct 2026 14:12:43 +0200 Subject: [PATCH 4/4] editor update for upm-ci --- .yamato/project-updated-dependencies-test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.yamato/project-updated-dependencies-test.yml b/.yamato/project-updated-dependencies-test.yml index 60c721e859..c64653dd8f 100644 --- a/.yamato/project-updated-dependencies-test.yml +++ b/.yamato/project-updated-dependencies-test.yml @@ -36,7 +36,8 @@ updated-dependencies_{{ project.name }}_NGO_{{ platform.name }}_{{ editor }}: {% endif %} commands: - npm install upm-ci-utils@stable -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm # upm-ci is not preinstalled on the image so we need to download it - - upm-ci project test -u {{ editor }} --project-path {{ project.path }} --type updated-dependencies-tests --package-filter com.unity.netcode.gameobjects + - unity-downloader-cli --fast --wait -u {{ editor }} -c Editor --arch {{ platform.architecture }} + - upm-ci project test -u .Editor --project-path {{ project.path }} --type updated-dependencies-tests --package-filter com.unity.netcode.gameobjects artifacts: logs: paths: