diff --git a/.yamato/_run-all.yml b/.yamato/_run-all.yml index 1832685b89..effe65098a 100644 --- a/.yamato/_run-all.yml +++ b/.yamato/_run-all.yml @@ -263,7 +263,7 @@ run_all_project_tests_cmb_service: {% for platform in test_platforms.default -%} {% for editor in validation_editors.all -%} {% for backend in scripting_backends -%} - - .yamato/cmb_service_standalone_tests.yml#cmb_service_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ editor }} + - .yamato/cmb-service-standalone-tests.yml#cmb_service_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ editor }} {% endfor -%} {% endfor -%} {% endfor -%} @@ -275,10 +275,8 @@ run_all_project_tests_cmb_service_trunk: dependencies: {% for project in projects.default -%} {% for platform in test_platforms.default -%} -{% for editor in validation_editors.default -%} {% for backend in scripting_backends -%} - - .yamato/cmb_service_standalone_tests.yml#cmb_service_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ editor }} -{% endfor -%} + - .yamato/cmb-service-standalone-tests.yml#cmb_service_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }}_trunk {% endfor -%} {% endfor -%} {% endfor -%} @@ -290,7 +288,7 @@ run_all_project_tests_cmb_service_6000: {% 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 }}_6000.0 + - .yamato/cmb-service-standalone-tests.yml#cmb_service_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }}_6000.0 {% endfor -%} {% endfor -%} {% endfor -%} diff --git a/.yamato/ngo-publish.yml b/.yamato/ngo-publish.yml index 30bbfb6d14..5be98b6772 100644 --- a/.yamato/ngo-publish.yml +++ b/.yamato/ngo-publish.yml @@ -4,7 +4,7 @@ ngo_release_preparation: triggers: recurring: - branch: develop-2.0.0 # We make new releases from this branch - frequency: weekly # Run at some point every Saturday. Note that it's restricted to every 4th Saturday inside the script + frequency: "10 * * 1" # Runs every Sunday at 10:00 AM rerun: always commands: - pip install PyGithub diff --git a/.yamato/project-builders/builder.metafile b/.yamato/project-builders/builder.metafile index 743186a77b..16a865ba8c 100644 --- a/.yamato/project-builders/builder.metafile +++ b/.yamato/project-builders/builder.metafile @@ -3,9 +3,10 @@ NetcodeProjects: # Note that we are using internal Unity repo. This means that we may test with newest changes that are not yet released to our users (there are also public versions) # Note that for BossRoom 'main' branch supports NGOv1.X and 'develop' branch supports NGOv2.X + # TODO: For BossRoom correct branch to develop when PR-3736 is merged in their repo BossRoom: GithubRepo: "https://github.com/Unity-Technologies/com.unity.multiplayer.samples.coop.git" - branch: develop + branch: ngo-playtest-update manifestPath: Packages/manifest.json projectPath: '.' Asteroids: diff --git a/.yamato/wrench/preview-a-p-v.yml b/.yamato/wrench/preview-a-p-v.yml index c20ff1f776..b930d28c11 100644 --- a/.yamato/wrench/preview-a-p-v.yml +++ b/.yamato/wrench/preview-a-p-v.yml @@ -17,6 +17,9 @@ all_preview_apv_jobs: - path: .yamato/wrench/preview-a-p-v.yml#preview_apv_-_6000_4_-_macos - path: .yamato/wrench/preview-a-p-v.yml#preview_apv_-_6000_4_-_ubuntu - path: .yamato/wrench/preview-a-p-v.yml#preview_apv_-_6000_4_-_windows + - path: .yamato/wrench/preview-a-p-v.yml#preview_apv_-_6000_5_-_macos + - path: .yamato/wrench/preview-a-p-v.yml#preview_apv_-_6000_5_-_ubuntu + - path: .yamato/wrench/preview-a-p-v.yml#preview_apv_-_6000_5_-_windows metadata: Job Maintainers: '#rm-packageworks' Wrench: 1.2.0.0 @@ -525,7 +528,7 @@ preview_apv_-_6000_4_-_macos: - command: npm install upm-ci-utils@stable -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm timeout: 20 retries: 10 - - command: unity-downloader-cli -u trunk -c editor --path .Editor --fast + - command: unity-downloader-cli -u 6000.4/staging -c editor --path .Editor --fast timeout: 10 retries: 3 - command: python PythonScripts/preview_apv.py --wrench-config=.yamato/wrench/wrench_config.json --editor-version=6000.4 --testsuite=editor,playmode --artifacts-path=PreviewApvArtifacts~ @@ -579,7 +582,7 @@ preview_apv_-_6000_4_-_ubuntu: - command: npm install upm-ci-utils@stable -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm timeout: 20 retries: 10 - - command: unity-downloader-cli -u trunk -c editor --path .Editor --fast + - command: unity-downloader-cli -u 6000.4/staging -c editor --path .Editor --fast timeout: 10 retries: 3 - command: python PythonScripts/preview_apv.py --wrench-config=.yamato/wrench/wrench_config.json --editor-version=6000.4 --testsuite=editor,playmode --artifacts-path=PreviewApvArtifacts~ @@ -634,7 +637,7 @@ preview_apv_-_6000_4_-_windows: - command: npm install upm-ci-utils@stable -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm timeout: 20 retries: 10 - - command: unity-downloader-cli -u trunk -c editor --path .Editor --fast + - command: unity-downloader-cli -u 6000.4/staging -c editor --path .Editor --fast timeout: 10 retries: 3 - command: python PythonScripts/preview_apv.py --wrench-config=.yamato/wrench/wrench_config.json --editor-version=6000.4 --testsuite=editor,playmode --artifacts-path=PreviewApvArtifacts~ @@ -673,3 +676,166 @@ preview_apv_-_6000_4_-_windows: Job Maintainers: '#rm-packageworks' Wrench: 1.2.0.0 +# Functional tests for dependents found in the latest 6000.5 manifest (MacOS). +preview_apv_-_6000_5_-_macos: + name: Preview APV - 6000.5 - macos + agent: + image: package-ci/macos-13:default + type: Unity::VM::osx + flavor: b1.xlarge + commands: + - command: curl https://artifactory.prd.it.unity3d.com/artifactory/stevedore-unity-internal/wrench-localapv/1-3-0_3978eda62a03e3dbc469ab77590d20f8832032d8e0b586550597b7f590baefec.zip -o wrench-localapv.zip + - command: 7z x -aoa wrench-localapv.zip + - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple + - command: python PythonScripts/print_machine_info.py + - command: npm install upm-ci-utils@stable -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm + timeout: 20 + retries: 10 + - command: unity-downloader-cli -u trunk -c editor --path .Editor --fast + timeout: 10 + retries: 3 + - command: python PythonScripts/preview_apv.py --wrench-config=.yamato/wrench/wrench_config.json --editor-version=6000.5 --testsuite=editor,playmode --artifacts-path=PreviewApvArtifacts~ + - command: echo 'Skipping Editor Manifest Validator as it is only supported on Windows' + after: + - command: bash .yamato/generated-scripts/infrastructure-instability-detection-mac.sh + artifacts: + Crash Dumps: + paths: + - CrashDumps/** + logs: + paths: + - '*.log' + - '*.xml' + - upm-ci~/test-results/**/* + - upm-ci~/temp/*/Logs/** + - upm-ci~/temp/*/Library/*.log + - upm-ci~/temp/*/*.log + - upm-ci~/temp/Builds/*.log + packages: + paths: + - upm-ci~/packages/**/* + PreviewAPVResults: + paths: + - PreviewApvArtifacts~/** + - APVTest/**/manifest.json + pvp-results: + paths: + - upm-ci~/pvp/**/* + browsable: onDemand + dependencies: + - path: .yamato/wrench/package-pack-jobs.yml#package_pack_-_netcode_gameobjects + variables: + UPMPVP_CONTEXT_WRENCH: 1.2.0.0 + metadata: + Job Maintainers: '#rm-packageworks' + Wrench: 1.2.0.0 + +# Functional tests for dependents found in the latest 6000.5 manifest (Ubuntu). +preview_apv_-_6000_5_-_ubuntu: + name: Preview APV - 6000.5 - ubuntu + agent: + image: package-ci/ubuntu-22.04:v4 + type: Unity::VM + flavor: b1.large + commands: + - command: curl https://artifactory.prd.it.unity3d.com/artifactory/stevedore-unity-internal/wrench-localapv/1-3-0_3978eda62a03e3dbc469ab77590d20f8832032d8e0b586550597b7f590baefec.zip -o wrench-localapv.zip + - command: 7z x -aoa wrench-localapv.zip + - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple + - command: python PythonScripts/print_machine_info.py + - command: npm install upm-ci-utils@stable -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm + timeout: 20 + retries: 10 + - command: unity-downloader-cli -u trunk -c editor --path .Editor --fast + timeout: 10 + retries: 3 + - command: python PythonScripts/preview_apv.py --wrench-config=.yamato/wrench/wrench_config.json --editor-version=6000.5 --testsuite=editor,playmode --artifacts-path=PreviewApvArtifacts~ + - command: echo 'Skipping Editor Manifest Validator as it is only supported on Windows' + after: + - command: bash .yamato/generated-scripts/infrastructure-instability-detection-linux.sh + artifacts: + Crash Dumps: + paths: + - CrashDumps/** + logs: + paths: + - '*.log' + - '*.xml' + - upm-ci~/test-results/**/* + - upm-ci~/temp/*/Logs/** + - upm-ci~/temp/*/Library/*.log + - upm-ci~/temp/*/*.log + - upm-ci~/temp/Builds/*.log + packages: + paths: + - upm-ci~/packages/**/* + PreviewAPVResults: + paths: + - PreviewApvArtifacts~/** + - APVTest/**/manifest.json + pvp-results: + paths: + - upm-ci~/pvp/**/* + browsable: onDemand + dependencies: + - path: .yamato/wrench/package-pack-jobs.yml#package_pack_-_netcode_gameobjects + variables: + UPMPVP_CONTEXT_WRENCH: 1.2.0.0 + metadata: + Job Maintainers: '#rm-packageworks' + Wrench: 1.2.0.0 + +# Functional tests for dependents found in the latest 6000.5 manifest (Windows). +preview_apv_-_6000_5_-_windows: + name: Preview APV - 6000.5 - windows + agent: + image: package-ci/win10:default + type: Unity::VM + flavor: b1.large + commands: + - command: gsudo reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" /v LongPathsEnabled /t REG_DWORD /d 1 /f + - command: curl https://artifactory.prd.it.unity3d.com/artifactory/stevedore-unity-internal/wrench-localapv/1-3-0_3978eda62a03e3dbc469ab77590d20f8832032d8e0b586550597b7f590baefec.zip -o wrench-localapv.zip + - command: 7z x -aoa wrench-localapv.zip + - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple + - command: python PythonScripts/print_machine_info.py + - command: npm install upm-ci-utils@stable -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm + timeout: 20 + retries: 10 + - command: unity-downloader-cli -u trunk -c editor --path .Editor --fast + timeout: 10 + retries: 3 + - command: python PythonScripts/preview_apv.py --wrench-config=.yamato/wrench/wrench_config.json --editor-version=6000.5 --testsuite=editor,playmode --artifacts-path=PreviewApvArtifacts~ + - command: python PythonScripts/editor_manifest_validator.py --version=6000.5 --wrench-config=.yamato/wrench/wrench_config.json + after: + - command: .yamato\generated-scripts\infrastructure-instability-detection-win.cmd + artifacts: + Crash Dumps: + paths: + - CrashDumps/** + logs: + paths: + - '*.log' + - '*.xml' + - upm-ci~/test-results/**/* + - upm-ci~/temp/*/Logs/** + - upm-ci~/temp/*/Library/*.log + - upm-ci~/temp/*/*.log + - upm-ci~/temp/Builds/*.log + packages: + paths: + - upm-ci~/packages/**/* + PreviewAPVResults: + paths: + - PreviewApvArtifacts~/** + - APVTest/**/manifest.json + pvp-results: + paths: + - upm-ci~/pvp/**/* + browsable: onDemand + dependencies: + - path: .yamato/wrench/package-pack-jobs.yml#package_pack_-_netcode_gameobjects + variables: + UPMPVP_CONTEXT_WRENCH: 1.2.0.0 + metadata: + Job Maintainers: '#rm-packageworks' + Wrench: 1.2.0.0 + diff --git a/.yamato/wrench/promotion-jobs.yml b/.yamato/wrench/promotion-jobs.yml index ce80a109a7..73210d508b 100644 --- a/.yamato/wrench/promotion-jobs.yml +++ b/.yamato/wrench/promotion-jobs.yml @@ -146,6 +146,36 @@ publish_dry_run_netcode_gameobjects: unzip: true packages: ignore_artifact: true + - path: .yamato/wrench/validation-jobs.yml#validate_-_netcode_gameobjects_-_6000_5_-_macos + specific_options: + UTR: + location: results/UTR/validate-netcode.gameobjects-6000.5-macos + unzip: true + pvp-results: + location: results/pvp/validate-netcode.gameobjects-6000.5-macos + unzip: true + packages: + ignore_artifact: true + - path: .yamato/wrench/validation-jobs.yml#validate_-_netcode_gameobjects_-_6000_5_-_ubuntu + specific_options: + UTR: + location: results/UTR/validate-netcode.gameobjects-6000.5-ubuntu + unzip: true + pvp-results: + location: results/pvp/validate-netcode.gameobjects-6000.5-ubuntu + unzip: true + packages: + ignore_artifact: true + - path: .yamato/wrench/validation-jobs.yml#validate_-_netcode_gameobjects_-_6000_5_-_windows + specific_options: + UTR: + location: results/UTR/validate-netcode.gameobjects-6000.5-windows + unzip: true + pvp-results: + location: results/pvp/validate-netcode.gameobjects-6000.5-windows + unzip: true + packages: + ignore_artifact: true variables: UPMPVP_ACK_UPMPVP_DOES_NO_API_VALIDATION: 1 UPMPVP_CONTEXT_WRENCH: 1.2.0.0 @@ -298,6 +328,36 @@ publish_netcode_gameobjects: unzip: true packages: ignore_artifact: true + - path: .yamato/wrench/validation-jobs.yml#validate_-_netcode_gameobjects_-_6000_5_-_macos + specific_options: + UTR: + location: results/UTR/validate-netcode.gameobjects-6000.5-macos + unzip: true + pvp-results: + location: results/pvp/validate-netcode.gameobjects-6000.5-macos + unzip: true + packages: + ignore_artifact: true + - path: .yamato/wrench/validation-jobs.yml#validate_-_netcode_gameobjects_-_6000_5_-_ubuntu + specific_options: + UTR: + location: results/UTR/validate-netcode.gameobjects-6000.5-ubuntu + unzip: true + pvp-results: + location: results/pvp/validate-netcode.gameobjects-6000.5-ubuntu + unzip: true + packages: + ignore_artifact: true + - path: .yamato/wrench/validation-jobs.yml#validate_-_netcode_gameobjects_-_6000_5_-_windows + specific_options: + UTR: + location: results/UTR/validate-netcode.gameobjects-6000.5-windows + unzip: true + pvp-results: + location: results/pvp/validate-netcode.gameobjects-6000.5-windows + unzip: true + packages: + ignore_artifact: true variables: UPMPVP_ACK_UPMPVP_DOES_NO_API_VALIDATION: 1 UPMPVP_CONTEXT_WRENCH: 1.2.0.0 diff --git a/.yamato/wrench/validation-jobs.yml b/.yamato/wrench/validation-jobs.yml index 8043d11bbb..6398e63b51 100644 --- a/.yamato/wrench/validation-jobs.yml +++ b/.yamato/wrench/validation-jobs.yml @@ -607,7 +607,7 @@ validate_-_netcode_gameobjects_-_6000_4_-_macos: - command: 7z x -aoa wrench-localapv.zip - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple - command: python PythonScripts/print_machine_info.py - - command: unity-downloader-cli -u trunk -c editor --path .Editor --fast + - command: unity-downloader-cli -u 6000.4/staging -c editor --path .Editor --fast timeout: 10 retries: 3 - command: upm-pvp create-test-project testproject --packages "upm-ci~/packages/*.tgz" --filter "com.unity.netcode.gameobjects" --unity .Editor @@ -673,7 +673,7 @@ validate_-_netcode_gameobjects_-_6000_4_-_ubuntu: - command: 7z x -aoa wrench-localapv.zip - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple - command: python PythonScripts/print_machine_info.py - - command: unity-downloader-cli -u trunk -c editor --path .Editor --fast + - command: unity-downloader-cli -u 6000.4/staging -c editor --path .Editor --fast timeout: 10 retries: 3 - command: upm-pvp create-test-project testproject --packages "upm-ci~/packages/*.tgz" --filter "com.unity.netcode.gameobjects" --unity .Editor @@ -739,6 +739,204 @@ validate_-_netcode_gameobjects_-_6000_4_-_windows: - command: 7z x -aoa wrench-localapv.zip - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple - command: python PythonScripts/print_machine_info.py + - command: unity-downloader-cli -u 6000.4/staging -c editor --path .Editor --fast + timeout: 10 + retries: 3 + - command: upm-pvp create-test-project testproject --packages "upm-ci~/packages/*.tgz" --filter "com.unity.netcode.gameobjects" --unity .Editor + timeout: 10 + retries: 1 + - command: echo No internal packages to add. + - command: upm-pvp test --unity .Editor --packages "upm-ci~/packages/*.tgz" --results upm-ci~/pvp + timeout: 40 + retries: 0 + - command: upm-pvp require "pkgprom-promote -PVP-29-2 rme" --results upm-ci~/pvp --exemptions upm-ci~/pvp/failures.json + timeout: 5 + retries: 0 + - command: upm-pvp require "rme PVP-160-1 supported" --results upm-ci~/pvp --exemptions upm-ci~/pvp/failures.json + timeout: 10 + retries: 0 + - command: 'UnifiedTestRunner.exe --testproject=testproject --editor-location=.Editor --clean-library --reruncount=1 --clean-library-on-rerun --artifacts-path=artifacts --suite=Editor --suite=Playmode "--ff={ops.upmpvpevidence.enable=true}" ' + timeout: 40 + retries: 1 + after: + - command: .yamato\generated-scripts\infrastructure-instability-detection-win.cmd + artifacts: + Crash Dumps: + paths: + - CrashDumps/** + packages: + paths: + - upm-ci~/packages/**/* + pvp-results: + paths: + - upm-ci~/pvp/**/* + browsable: onDemand + UTR: + paths: + - '*.log' + - '*.xml' + - artifacts/**/* + - testproject/Logs/** + - testproject/Library/*.log + - testproject/*.log + - testproject/Builds/*.log + - build/test-results/** + browsable: onDemand + dependencies: + - path: .yamato/wrench/package-pack-jobs.yml#package_pack_-_netcode_gameobjects + variables: + UPMPVP_ACK_UPMPVP_DOES_NO_API_VALIDATION: 1 + UPMPVP_CONTEXT_WRENCH: 1.2.0.0 + metadata: + Job Maintainers: '#rm-packageworks' + Wrench: 1.2.0.0 + labels: + - Packages:netcode.gameobjects + +# PVP Editor and Playmode tests for Validate - netcode.gameobjects - 6000.5 - macos (6000.5 - MacOS). +validate_-_netcode_gameobjects_-_6000_5_-_macos: + name: Validate - netcode.gameobjects - 6000.5 - macos + agent: + image: package-ci/macos-13:default + type: Unity::VM::osx + flavor: b1.xlarge + commands: + - command: curl https://artifactory.prd.it.unity3d.com/artifactory/stevedore-unity-internal/wrench-localapv/1-3-0_3978eda62a03e3dbc469ab77590d20f8832032d8e0b586550597b7f590baefec.zip -o wrench-localapv.zip + - command: 7z x -aoa wrench-localapv.zip + - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple + - command: python PythonScripts/print_machine_info.py + - command: unity-downloader-cli -u trunk -c editor --path .Editor --fast + timeout: 10 + retries: 3 + - command: upm-pvp create-test-project testproject --packages "upm-ci~/packages/*.tgz" --filter "com.unity.netcode.gameobjects" --unity .Editor + timeout: 10 + retries: 1 + - command: echo No internal packages to add. + - command: upm-pvp test --unity .Editor --packages "upm-ci~/packages/*.tgz" --results upm-ci~/pvp + timeout: 40 + retries: 0 + - command: upm-pvp require "pkgprom-promote -PVP-29-2 rme" --results upm-ci~/pvp --exemptions upm-ci~/pvp/failures.json + timeout: 5 + retries: 0 + - command: upm-pvp require "rme PVP-160-1 supported" --results upm-ci~/pvp --exemptions upm-ci~/pvp/failures.json + timeout: 10 + retries: 0 + - command: 'UnifiedTestRunner --testproject=testproject --editor-location=.Editor --clean-library --reruncount=1 --clean-library-on-rerun --artifacts-path=artifacts --suite=Editor --suite=Playmode "--ff={ops.upmpvpevidence.enable=true}" ' + timeout: 40 + retries: 1 + after: + - command: bash .yamato/generated-scripts/infrastructure-instability-detection-mac.sh + artifacts: + Crash Dumps: + paths: + - CrashDumps/** + packages: + paths: + - upm-ci~/packages/**/* + pvp-results: + paths: + - upm-ci~/pvp/**/* + browsable: onDemand + UTR: + paths: + - '*.log' + - '*.xml' + - artifacts/**/* + - testproject/Logs/** + - testproject/Library/*.log + - testproject/*.log + - testproject/Builds/*.log + - build/test-results/** + browsable: onDemand + dependencies: + - path: .yamato/wrench/package-pack-jobs.yml#package_pack_-_netcode_gameobjects + variables: + UPMPVP_ACK_UPMPVP_DOES_NO_API_VALIDATION: 1 + UPMPVP_CONTEXT_WRENCH: 1.2.0.0 + metadata: + Job Maintainers: '#rm-packageworks' + Wrench: 1.2.0.0 + labels: + - Packages:netcode.gameobjects + +# PVP Editor and Playmode tests for Validate - netcode.gameobjects - 6000.5 - ubuntu (6000.5 - Ubuntu). +validate_-_netcode_gameobjects_-_6000_5_-_ubuntu: + name: Validate - netcode.gameobjects - 6000.5 - ubuntu + agent: + image: package-ci/ubuntu-22.04:v4 + type: Unity::VM + flavor: b1.large + commands: + - command: curl https://artifactory.prd.it.unity3d.com/artifactory/stevedore-unity-internal/wrench-localapv/1-3-0_3978eda62a03e3dbc469ab77590d20f8832032d8e0b586550597b7f590baefec.zip -o wrench-localapv.zip + - command: 7z x -aoa wrench-localapv.zip + - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple + - command: python PythonScripts/print_machine_info.py + - command: unity-downloader-cli -u trunk -c editor --path .Editor --fast + timeout: 10 + retries: 3 + - command: upm-pvp create-test-project testproject --packages "upm-ci~/packages/*.tgz" --filter "com.unity.netcode.gameobjects" --unity .Editor + timeout: 10 + retries: 1 + - command: echo No internal packages to add. + - command: upm-pvp test --unity .Editor --packages "upm-ci~/packages/*.tgz" --results upm-ci~/pvp + timeout: 40 + retries: 0 + - command: upm-pvp require "pkgprom-promote -PVP-29-2 rme" --results upm-ci~/pvp --exemptions upm-ci~/pvp/failures.json + timeout: 5 + retries: 0 + - command: upm-pvp require "rme PVP-160-1 supported" --results upm-ci~/pvp --exemptions upm-ci~/pvp/failures.json + timeout: 10 + retries: 0 + - command: 'UnifiedTestRunner --testproject=testproject --editor-location=.Editor --clean-library --reruncount=1 --clean-library-on-rerun --artifacts-path=artifacts --suite=Editor --suite=Playmode "--ff={ops.upmpvpevidence.enable=true}" ' + timeout: 40 + retries: 1 + after: + - command: bash .yamato/generated-scripts/infrastructure-instability-detection-linux.sh + artifacts: + Crash Dumps: + paths: + - CrashDumps/** + packages: + paths: + - upm-ci~/packages/**/* + pvp-results: + paths: + - upm-ci~/pvp/**/* + browsable: onDemand + UTR: + paths: + - '*.log' + - '*.xml' + - artifacts/**/* + - testproject/Logs/** + - testproject/Library/*.log + - testproject/*.log + - testproject/Builds/*.log + - build/test-results/** + browsable: onDemand + dependencies: + - path: .yamato/wrench/package-pack-jobs.yml#package_pack_-_netcode_gameobjects + variables: + UPMPVP_ACK_UPMPVP_DOES_NO_API_VALIDATION: 1 + UPMPVP_CONTEXT_WRENCH: 1.2.0.0 + metadata: + Job Maintainers: '#rm-packageworks' + Wrench: 1.2.0.0 + labels: + - Packages:netcode.gameobjects + +# PVP Editor and Playmode tests for Validate - netcode.gameobjects - 6000.5 - windows (6000.5 - Windows). +validate_-_netcode_gameobjects_-_6000_5_-_windows: + name: Validate - netcode.gameobjects - 6000.5 - windows + agent: + image: package-ci/win10:default + type: Unity::VM + flavor: b1.large + commands: + - command: curl https://artifactory.prd.it.unity3d.com/artifactory/stevedore-unity-internal/wrench-localapv/1-3-0_3978eda62a03e3dbc469ab77590d20f8832032d8e0b586550597b7f590baefec.zip -o wrench-localapv.zip + - command: 7z x -aoa wrench-localapv.zip + - command: pip install semver requests --index-url https://artifactory-slo.bf.unity3d.com/artifactory/api/pypi/pypi/simple + - command: python PythonScripts/print_machine_info.py - command: unity-downloader-cli -u trunk -c editor --path .Editor --fast timeout: 10 retries: 3 diff --git a/Tools/scripts/ReleaseAutomation/release_config.py b/Tools/scripts/ReleaseAutomation/release_config.py index 20da5bb293..b91f6201d4 100644 --- a/Tools/scripts/ReleaseAutomation/release_config.py +++ b/Tools/scripts/ReleaseAutomation/release_config.py @@ -39,9 +39,9 @@ def __init__(self): self.yamato_project_id = '1201' self.command_to_run_on_release_branch = make_package_release_ready - self.release_weekday = 5 # Saturday + self.release_weekday = 6 # Sunday self.release_week_cycle = 4 # Release every 4 weeks - self.anchor_date = datetime.date(2025, 7, 19) # Anchor date for the release cycle (previous release Saturday) + self.anchor_date = datetime.date(2025, 7, 20) # Anchor date for the release cycle (previous release Sunday) self.package_version = get_package_version_from_manifest(self.manifest_path) self.release_branch_name = f"release/{self.package_version}" # Branch from which we want to release diff --git a/Tools/scripts/ReleaseAutomation/run_release_preparation.py b/Tools/scripts/ReleaseAutomation/run_release_preparation.py index 2c57472023..562680f8d3 100644 --- a/Tools/scripts/ReleaseAutomation/run_release_preparation.py +++ b/Tools/scripts/ReleaseAutomation/run_release_preparation.py @@ -18,7 +18,14 @@ def PrepareNetcodePackageForRelease(): print("\nStep 1: Verifying release conditions...") verifyReleaseConditions(config) - + except Exception as e: + print("\n--- Release conditions were not met ---", file=sys.stderr) + print(f"Reason: {e}", file=sys.stderr) + sys.exit(0) # In this case we want the job not to fail because this will be an intended blocking behavior + + + + try: print("\nStep 2: Creating release branch...") create_branch_execute_commands_and_push(config) diff --git a/Tools/scripts/Utils/general_utils.py b/Tools/scripts/Utils/general_utils.py index 6d6255129b..2e471ca3a8 100644 --- a/Tools/scripts/Utils/general_utils.py +++ b/Tools/scripts/Utils/general_utils.py @@ -75,6 +75,42 @@ def update_package_version_by_patch(package_manifest_path): return new_package_version +def regenerate_wrench(): + """ + It runs Tools/regenerate-ci.cmd OR Tools/regenerate-ci.sh script + to regenerate the CI files. (depending on the OS) + + This is needed because wrench scripts content is created dynamically depending on the available editors + """ + + # --- Regenerate the CI files --- + print("\nRegenerating CI files...") + script_path = "" + if platform.system() == "Windows": + script_path = os.path.join('Tools', 'CI', 'regenerate-ci.bat') + else: # macOS and Linux + script_path = os.path.join('Tools' 'CI', 'regenerate-ci.sh') + + if not os.path.exists(script_path): + print(f"Error: Regeneration script not found at '{script_path}'.") + return + + try: + # Execute the regeneration script + # On non-Windows systems, the script might need execute permissions. + if platform.system() != "Windows": + os.chmod(script_path, 0o755) + + print(f"Running '{script_path}'...") + subprocess.run([script_path], check=True, shell=True) + print("CI regeneration completed successfully.") + + except subprocess.CalledProcessError as e: + print(f"Error: The CI regeneration script failed with exit code {e.returncode}.") + except Exception as e: + print(f"An unexpected error occurred while running the regeneration script: {e}") + + def update_validation_exceptions(validation_file, package_version): """ Updates the ValidationExceptions.json file with the new package version. diff --git a/Tools/scripts/Utils/verifyReleaseConditions.py b/Tools/scripts/Utils/verifyReleaseConditions.py index 61b7a050ef..9258a65fd8 100644 --- a/Tools/scripts/Utils/verifyReleaseConditions.py +++ b/Tools/scripts/Utils/verifyReleaseConditions.py @@ -4,6 +4,7 @@ The script will check the following conditions: 1. **Is today a release day?** - The script checks if today is a specified in ReleaseConfig weekday that falls on the release cycle of the team. + - Note that if the job is triggered manually, this condition will be bypassed. 2. **Is the [Unreleased] section of the CHANGELOG.md not empty?** - The script checks if the [Unreleased] section in the CHANGELOG.md contains meaningful entries. 3. **Does the release branch already exist?** @@ -21,6 +22,15 @@ import re from release_config import ReleaseConfig +def get_yamato_trigger_type(): + """ + Retrieves the trigger type for the current Yamato job from environment variables. + In other words, we can check if the job was triggered manually, by a schedule, or by a PR, etc. + """ + trigger_type = os.environ.get('YAMATO_TRIGGER_TYPE', 'unknown') + return trigger_type + + def is_release_date(weekday, release_week_cycle, anchor_date): """ Checks if today is a weekday that falls on the release_week_cycle starting from anchor_date . @@ -74,7 +84,7 @@ def verifyReleaseConditions(config: ReleaseConfig): error_messages = [] try: - if not is_release_date(config.release_weekday, config.release_week_cycle, config.anchor_date): + if get_yamato_trigger_type() != "Manual" and not is_release_date(config.release_weekday, config.release_week_cycle, config.anchor_date): error_messages.append(f"Condition not met: Today is not the scheduled release day. It should be weekday: {config.release_weekday}, every {config.release_week_cycle} weeks starting from {config.anchor_date}.") if is_changelog_empty(config.changelog_path): diff --git a/Tools/scripts/release.py b/Tools/scripts/release.py index f448dc861d..c81082e563 100644 --- a/Tools/scripts/release.py +++ b/Tools/scripts/release.py @@ -13,7 +13,7 @@ import subprocess import platform -from Utils.general_utils import get_package_version_from_manifest, update_changelog, update_validation_exceptions # nopep8 +from Utils.general_utils import get_package_version_from_manifest, update_changelog, update_validation_exceptions, regenerate_wrench # nopep8 def make_package_release_ready(manifest_path, changelog_path, validation_exceptions_path, package_version): @@ -36,6 +36,8 @@ def make_package_release_ready(manifest_path, changelog_path, validation_excepti # package version is already know as explained in # https://github.cds.internal.unity3d.com/unity/dots/pull/14318 update_changelog(changelog_path, package_version) + # Make sure that the wrench scripts are up to date + regenerate_wrench() if __name__ == '__main__': diff --git a/com.unity.netcode.gameobjects/Runtime/NetworkVariable/Serialization/ResizableBitVector.cs b/com.unity.netcode.gameobjects/Runtime/NetworkVariable/Serialization/ResizableBitVector.cs index 03f351d501..033411d3cb 100644 --- a/com.unity.netcode.gameobjects/Runtime/NetworkVariable/Serialization/ResizableBitVector.cs +++ b/com.unity.netcode.gameobjects/Runtime/NetworkVariable/Serialization/ResizableBitVector.cs @@ -1,6 +1,12 @@ using System; using Unity.Collections; + +// The following gets complained on by standards check that is +// likely not analyzing extension method usage deeply enough and thinks the using directive is unused. +// The directive is required for GetUnsafePtr() to be available. +#pragma warning disable IDE0005 using Unity.Collections.LowLevel.Unsafe; +#pragma warning restore IDE0005 namespace Unity.Netcode { diff --git a/dotnet-tools/netcode.standards/netcode.standards.csproj b/dotnet-tools/netcode.standards/netcode.standards.csproj index 74e37a2170..ece14dcc49 100644 --- a/dotnet-tools/netcode.standards/netcode.standards.csproj +++ b/dotnet-tools/netcode.standards/netcode.standards.csproj @@ -2,7 +2,7 @@ Exe - net6.0 + net8.0 true netcode.standards ./nupkg