UnityRenderStreaming/.yamato/upm-ci-renderstreaming-pack...

413 lines
18 KiB
YAML
Raw Permalink Normal View History

{% metadata_file .yamato/package.metafile %}
---
pack:
name: Pack {{ package_displayname }}
agent:
type: Unity::VM
image: package-ci/ubuntu-20:v1.4.0-1081009
flavor: b1.large
commands:
2020-05-08 15:58:57 +08:00
- npm install upm-ci-utils@{{ upm.package_version }} -g --registry {{ upm.registry_url }}
- find ./{{ project.packagename }} -type l -exec bash -c 'sh BuildScripts~/convert_symlinks.sh "$0"' {} \;
- upm-ci package pack --package-path {{ packagename }}
artifacts:
{{ packagename }}_package:
paths:
- "upm-ci~/packages/**/*"
{% for editor in editors %}
build_{{ editor.version }}_ios:
name : Build {{ package_displayname }} with {{ editor.version }} for ios device
agent:
type: Unity::VM::osx
image: package-ci/mac:v1.20.0-1079282
flavor: b1.large
commands:
- find upm-ci~/packages/ -name "*.tgz" | xargs -I file tar xvf file -C upm-ci~
- pip install unity-downloader-cli --index-url https://artifactory.prd.it.unity3d.com/artifactory/api/pypi/pypi/simple
- unity-downloader-cli -c Editor -c iOS -u {{ editor.version }} --fast -w
- curl -s https://artifactory.prd.it.unity3d.com/artifactory/unity-tools/utr-standalone/utr --output utr
- chmod +x ./utr
- ./utr --suite=playmode --platform=iOS --editor-location=.Editor --testproject=TestProjects/Empty --player-save-path=build/players --architecture=ARM64 --artifacts_path=build/logs --build-only
artifacts:
players:
paths:
- "build/players/**"
logs:
paths:
- "build/logs/**"
dependencies:
- .yamato/upm-ci-renderstreaming-packages.yml#pack
test_{{ packagename }}_{{ editor.version }}_ios:
name: Test {{ package_displayname }} with {{ editor.version }} on ios device
agent:
type: Unity::mobile::iPhone
image: mobile/macos-10.15-testing:v0.0.7-909915
flavor: b1.medium
skip_checkout: true
commands:
# Download standalone UnityTestRunner
- curl -s https://artifactory.prd.it.unity3d.com/artifactory/unity-tools/utr-standalone/utr --output utr
# Give UTR execution permissions
- chmod +x ./utr
# Run the test build on the device
- ./utr --suite=playmode --platform=iOS --player-load-path=build/players --artifacts_path=build/test-results
artifacts:
logs:
paths:
- "build/test-results/**"
dependencies:
- .yamato/upm-ci-renderstreaming-packages.yml#build_{{ editor.version }}_ios
{% for target in test_targets_android %}
build_{{ editor.version }}_android_{{ target.name }}:
name : Build {{ package_displayname }} with {{ editor.version }} for android device {{ target.name }}
agent:
type: Unity::VM::osx
image: package-ci/mac:v1.20.0-1079282
flavor: b1.xlarge
commands:
- |
find upm-ci~/packages/ -name "*.tgz" | xargs -I file tar xvf file -C upm-ci~
cp -rf upm-ci~/package/Runtime/Plugins Runtime/
ci: Add CI jobs which is package isolation test for detecting issues (#806) * Enable testing in true isolation We are experiencing a hang in our repo where we are building API Validation assemblies in which we take your latest promoted package `com.unity.renderstreaming@3.1.0-exp.4` (not happening with `3.1.0-exp.3`). The script imports the package with the Windows Unity Editor for the version you have specified in the `unity` field of your package (i.e. `2020.3`). We think it's because the use of `SynchronizationContext` are not properly cleaned up after and Unity still waits for them. Unfortunately this doesn't reproduce when we run the same commands on the command line but this PR should, in theory, reproduce the same hang on your repo as well. Enabling testing in true isolation is considered a good practice since this way you should be able to spot also missing dependencies since we are loading the package in a empty project and it should compile without errors. We were also wondering the reason you added that huge --timeout arg to utr if it's related to this issue but we were unable to find any job that exceeded reasonable timings. * add job for testing on Windows without GPU * hopefully this will reproduce the issue (cherry picked from commit 2583fbf5f484f734eb316c8758dbd38c96233ffd) * add job * fix * add dependencies * fix * fix * fix * fix bug * fix * fix issues * update dependency Co-authored-by: Mihai Popescu <57262907+mihai-unity@users.noreply.github.com>
2022-12-16 16:21:29 +08:00
{% if target.name == "vulkan" %}
cp -f TestProjects/Empty/ProjectSettings/ProjectSettings-android-vulkan.asset TestProjects/Empty/ProjectSettings/ProjectSettings.asset
ci: Add CI jobs which is package isolation test for detecting issues (#806) * Enable testing in true isolation We are experiencing a hang in our repo where we are building API Validation assemblies in which we take your latest promoted package `com.unity.renderstreaming@3.1.0-exp.4` (not happening with `3.1.0-exp.3`). The script imports the package with the Windows Unity Editor for the version you have specified in the `unity` field of your package (i.e. `2020.3`). We think it's because the use of `SynchronizationContext` are not properly cleaned up after and Unity still waits for them. Unfortunately this doesn't reproduce when we run the same commands on the command line but this PR should, in theory, reproduce the same hang on your repo as well. Enabling testing in true isolation is considered a good practice since this way you should be able to spot also missing dependencies since we are loading the package in a empty project and it should compile without errors. We were also wondering the reason you added that huge --timeout arg to utr if it's related to this issue but we were unable to find any job that exceeded reasonable timings. * add job for testing on Windows without GPU * hopefully this will reproduce the issue (cherry picked from commit 2583fbf5f484f734eb316c8758dbd38c96233ffd) * add job * fix * add dependencies * fix * fix * fix * fix bug * fix * fix issues * update dependency Co-authored-by: Mihai Popescu <57262907+mihai-unity@users.noreply.github.com>
2022-12-16 16:21:29 +08:00
{% endif %}
- pip install unity-downloader-cli --index-url https://artifactory.prd.it.unity3d.com/artifactory/api/pypi/pypi/simple
- unity-downloader-cli -c Editor -c Android -u {{ editor.version }} --fast -w
- curl -s https://artifactory.prd.it.unity3d.com/artifactory/unity-tools/utr-standalone/utr --output utr
- chmod +x ./utr
- ./utr --suite=playmode --platform=Android --editor-location=.Editor --testproject=TestProjects/Empty --player-save-path=build/players --architecture=ARM64 --artifacts_path=build/logs --scripting-backend=il2cpp --build-only
artifacts:
players:
paths:
- "build/players/**"
logs:
paths:
- "build/logs/**"
dependencies:
- .yamato/upm-ci-renderstreaming-packages.yml#pack
test_{{ packagename }}_{{ editor.version }}_android_{{ target.name }}:
name: Test {{ package_displayname }} with {{ editor.version }} on android device {{ target.name }}
agent:
type: Unity::mobile::shield
image: mobile/android-package-ci-win:v0.1.4-1212670
flavor: b1.medium
skip_checkout: true
dependencies:
- .yamato/upm-ci-renderstreaming-packages.yml#build_{{ editor.version }}_android_{{ target.name }}
commands:
- wget http://artifactory-slo.bf.unity3d.com/artifactory/mobile-generic/android/ADBKeys.zip!/adbkey.pub -O %USERPROFILE%/.android/adbkey.pub
- wget http://artifactory-slo.bf.unity3d.com/artifactory/mobile-generic/android/ADBKeys.zip!/adbkey -O %USERPROFILE%/.android/adbkey
- |
# Download standalone UnityTestRunner
curl -s https://artifactory.prd.it.unity3d.com/artifactory/unity-tools/utr-standalone/utr.bat --output utr.bat
# Set the IP of the device. In case device gets lost, UTR will try to recconect to ANDROID_DEVICE_CONNECTION
set ANDROID_DEVICE_CONNECTION=%BOKKEN_DEVICE_IP%
# Establish an ADB connection with the device
start %ANDROID_SDK_ROOT%\platform-tools\adb.exe connect %BOKKEN_DEVICE_IP%
# List the connected devices
start %ANDROID_SDK_ROOT%\platform-tools\adb.exe devices
NetSh Advfirewall set allprofiles state off
./utr --suite=playmode --platform=android --player-load-path=build/players --artifacts_path=build/test-results
artifacts:
logs:
paths:
- "build/test-results/**"
{% endfor %}
{% for platform in platforms %}
{% if platform.name != "macos" and platform.name != "macos-m1" %}
{% for param in platform.test_params %}
test_{{ packagename }}_{{ param.platform }}_{{ param.backend }}_{{ platform.name }}_{{ editor.version }}:
name : Test {{ package_displayname }} {{ param.platform }} {{ param.backend }} {{ editor.version }} on {{ platform.name }}
agent:
type: {{ platform.type }}
image: {{ platform.image }}
flavor: {{ platform.flavor }}
{% if platform.model %}
model: {{ platform.model }}
{% endif %}
commands:
- pip config set global.index-url https://artifactory.prd.it.unity3d.com/artifactory/api/pypi/pypi/simple
- pip install unity-downloader-cli --index-url https://artifactory.prd.it.unity3d.com/artifactory/api/pypi/pypi/simple
2020-05-08 15:58:57 +08:00
- npm install upm-ci-utils@{{ upm.package_version }} -g --registry {{ upm.registry_url }}
ci: Add CI jobs which is package isolation test for detecting issues (#806) * Enable testing in true isolation We are experiencing a hang in our repo where we are building API Validation assemblies in which we take your latest promoted package `com.unity.renderstreaming@3.1.0-exp.4` (not happening with `3.1.0-exp.3`). The script imports the package with the Windows Unity Editor for the version you have specified in the `unity` field of your package (i.e. `2020.3`). We think it's because the use of `SynchronizationContext` are not properly cleaned up after and Unity still waits for them. Unfortunately this doesn't reproduce when we run the same commands on the command line but this PR should, in theory, reproduce the same hang on your repo as well. Enabling testing in true isolation is considered a good practice since this way you should be able to spot also missing dependencies since we are loading the package in a empty project and it should compile without errors. We were also wondering the reason you added that huge --timeout arg to utr if it's related to this issue but we were unable to find any job that exceeded reasonable timings. * add job for testing on Windows without GPU * hopefully this will reproduce the issue (cherry picked from commit 2583fbf5f484f734eb316c8758dbd38c96233ffd) * add job * fix * add dependencies * fix * fix * fix * fix bug * fix * fix issues * update dependency Co-authored-by: Mihai Popescu <57262907+mihai-unity@users.noreply.github.com>
2022-12-16 16:21:29 +08:00
{% if platform.name == "win" or platform.name == "win-gpu" %}
- |
set WEBAPP_PATH=%cd%\Webapp\bin~\{{ platform.packed_webapp_name }}
ci: Add CI jobs which is package isolation test for detecting issues (#806) * Enable testing in true isolation We are experiencing a hang in our repo where we are building API Validation assemblies in which we take your latest promoted package `com.unity.renderstreaming@3.1.0-exp.4` (not happening with `3.1.0-exp.3`). The script imports the package with the Windows Unity Editor for the version you have specified in the `unity` field of your package (i.e. `2020.3`). We think it's because the use of `SynchronizationContext` are not properly cleaned up after and Unity still waits for them. Unfortunately this doesn't reproduce when we run the same commands on the command line but this PR should, in theory, reproduce the same hang on your repo as well. Enabling testing in true isolation is considered a good practice since this way you should be able to spot also missing dependencies since we are loading the package in a empty project and it should compile without errors. We were also wondering the reason you added that huge --timeout arg to utr if it's related to this issue but we were unable to find any job that exceeded reasonable timings. * add job for testing on Windows without GPU * hopefully this will reproduce the issue (cherry picked from commit 2583fbf5f484f734eb316c8758dbd38c96233ffd) * add job * fix * add dependencies * fix * fix * fix * fix bug * fix * fix issues * update dependency Co-authored-by: Mihai Popescu <57262907+mihai-unity@users.noreply.github.com>
2022-12-16 16:21:29 +08:00
upm-ci package test -u {{ editor.version }} --package-path {{ packagename }} --platform {{ param.platform }} --backend {{ param.backend }} --enable-load-and-test-isolation
{% else %}
- |
export WEBAPP_PATH=$(pwd)/WebApp/bin~/{{ platform.packed_webapp_name }}
ci: Add CI jobs which is package isolation test for detecting issues (#806) * Enable testing in true isolation We are experiencing a hang in our repo where we are building API Validation assemblies in which we take your latest promoted package `com.unity.renderstreaming@3.1.0-exp.4` (not happening with `3.1.0-exp.3`). The script imports the package with the Windows Unity Editor for the version you have specified in the `unity` field of your package (i.e. `2020.3`). We think it's because the use of `SynchronizationContext` are not properly cleaned up after and Unity still waits for them. Unfortunately this doesn't reproduce when we run the same commands on the command line but this PR should, in theory, reproduce the same hang on your repo as well. Enabling testing in true isolation is considered a good practice since this way you should be able to spot also missing dependencies since we are loading the package in a empty project and it should compile without errors. We were also wondering the reason you added that huge --timeout arg to utr if it's related to this issue but we were unable to find any job that exceeded reasonable timings. * add job for testing on Windows without GPU * hopefully this will reproduce the issue (cherry picked from commit 2583fbf5f484f734eb316c8758dbd38c96233ffd) * add job * fix * add dependencies * fix * fix * fix * fix bug * fix * fix issues * update dependency Co-authored-by: Mihai Popescu <57262907+mihai-unity@users.noreply.github.com>
2022-12-16 16:21:29 +08:00
upm-ci package test -u {{ editor.version }} --package-path {{ packagename }} --platform {{ param.platform }} --backend {{ param.backend }} --extra-utr-arg="--testfilter=!HttpSignaling" --enable-load-and-test-isolation
{% endif %}
artifacts:
{{ packagename }}_{{ editor.version }}_{{ platform.name }}_test_results:
paths:
- "upm-ci~/test-results/**/*"
dependencies:
- .yamato/upm-ci-renderstreaming-packages.yml#pack
- .yamato/upm-ci-webapp.yml#pack_{{ platform.packed_webapp_platform }}
{% for project in test_projects %}
test_{{ project.name }}_{{ param.platform }}_{{ param.backend }}_{{ platform.name }}_{{ editor.version }}:
name : Test {{ project.name }} {{ param.platform }} {{ param.backend }} {{ editor.version }} on {{ platform.name }}
agent:
type: {{ platform.type }}
image: {{ platform.image }}
flavor: {{ platform.flavor }}
{% if platform.model %}
model: {{ platform.model }}
{% endif %}
commands:
- pip config set global.index-url https://artifactory.prd.it.unity3d.com/artifactory/api/pypi/pypi/simple
- pip install unity-downloader-cli --index-url https://artifactory.prd.it.unity3d.com/artifactory/api/pypi/pypi/simple
- npm install upm-ci-utils@{{ upm.package_version }} -g --registry {{ upm.registry_url }}
ci: Add CI jobs which is package isolation test for detecting issues (#806) * Enable testing in true isolation We are experiencing a hang in our repo where we are building API Validation assemblies in which we take your latest promoted package `com.unity.renderstreaming@3.1.0-exp.4` (not happening with `3.1.0-exp.3`). The script imports the package with the Windows Unity Editor for the version you have specified in the `unity` field of your package (i.e. `2020.3`). We think it's because the use of `SynchronizationContext` are not properly cleaned up after and Unity still waits for them. Unfortunately this doesn't reproduce when we run the same commands on the command line but this PR should, in theory, reproduce the same hang on your repo as well. Enabling testing in true isolation is considered a good practice since this way you should be able to spot also missing dependencies since we are loading the package in a empty project and it should compile without errors. We were also wondering the reason you added that huge --timeout arg to utr if it's related to this issue but we were unable to find any job that exceeded reasonable timings. * add job for testing on Windows without GPU * hopefully this will reproduce the issue (cherry picked from commit 2583fbf5f484f734eb316c8758dbd38c96233ffd) * add job * fix * add dependencies * fix * fix * fix * fix bug * fix * fix issues * update dependency Co-authored-by: Mihai Popescu <57262907+mihai-unity@users.noreply.github.com>
2022-12-16 16:21:29 +08:00
{% if platform.name != "win" and platform.name != "win-gpu" %}
- find ./{{ packagename }} -type l -exec bash -c 'sh BuildScripts~/convert_symlinks.sh "$0"' {} \;
{% endif %}
- upm-ci project pack --project-path {{ project.path }}
ci: Add CI jobs which is package isolation test for detecting issues (#806) * Enable testing in true isolation We are experiencing a hang in our repo where we are building API Validation assemblies in which we take your latest promoted package `com.unity.renderstreaming@3.1.0-exp.4` (not happening with `3.1.0-exp.3`). The script imports the package with the Windows Unity Editor for the version you have specified in the `unity` field of your package (i.e. `2020.3`). We think it's because the use of `SynchronizationContext` are not properly cleaned up after and Unity still waits for them. Unfortunately this doesn't reproduce when we run the same commands on the command line but this PR should, in theory, reproduce the same hang on your repo as well. Enabling testing in true isolation is considered a good practice since this way you should be able to spot also missing dependencies since we are loading the package in a empty project and it should compile without errors. We were also wondering the reason you added that huge --timeout arg to utr if it's related to this issue but we were unable to find any job that exceeded reasonable timings. * add job for testing on Windows without GPU * hopefully this will reproduce the issue (cherry picked from commit 2583fbf5f484f734eb316c8758dbd38c96233ffd) * add job * fix * add dependencies * fix * fix * fix * fix bug * fix * fix issues * update dependency Co-authored-by: Mihai Popescu <57262907+mihai-unity@users.noreply.github.com>
2022-12-16 16:21:29 +08:00
{% if platform.name == "win" or platform.name == "win-gpu" %}
- |
set WEBAPP_PATH=%cd%\Webapp\bin~\{{ platform.packed_webapp_name }}
ci: Add CI jobs which is package isolation test for detecting issues (#806) * Enable testing in true isolation We are experiencing a hang in our repo where we are building API Validation assemblies in which we take your latest promoted package `com.unity.renderstreaming@3.1.0-exp.4` (not happening with `3.1.0-exp.3`). The script imports the package with the Windows Unity Editor for the version you have specified in the `unity` field of your package (i.e. `2020.3`). We think it's because the use of `SynchronizationContext` are not properly cleaned up after and Unity still waits for them. Unfortunately this doesn't reproduce when we run the same commands on the command line but this PR should, in theory, reproduce the same hang on your repo as well. Enabling testing in true isolation is considered a good practice since this way you should be able to spot also missing dependencies since we are loading the package in a empty project and it should compile without errors. We were also wondering the reason you added that huge --timeout arg to utr if it's related to this issue but we were unable to find any job that exceeded reasonable timings. * add job for testing on Windows without GPU * hopefully this will reproduce the issue (cherry picked from commit 2583fbf5f484f734eb316c8758dbd38c96233ffd) * add job * fix * add dependencies * fix * fix * fix * fix bug * fix * fix issues * update dependency Co-authored-by: Mihai Popescu <57262907+mihai-unity@users.noreply.github.com>
2022-12-16 16:21:29 +08:00
upm-ci project test -u {{ editor.version }} --project-path {{ project.path }} --platform {{ param.platform }} --backend {{ param.backend }}
{% else %}
- |
export WEBAPP_PATH=$(pwd)/WebApp/bin~/{{ platform.packed_webapp_name }}
ci: Add CI jobs which is package isolation test for detecting issues (#806) * Enable testing in true isolation We are experiencing a hang in our repo where we are building API Validation assemblies in which we take your latest promoted package `com.unity.renderstreaming@3.1.0-exp.4` (not happening with `3.1.0-exp.3`). The script imports the package with the Windows Unity Editor for the version you have specified in the `unity` field of your package (i.e. `2020.3`). We think it's because the use of `SynchronizationContext` are not properly cleaned up after and Unity still waits for them. Unfortunately this doesn't reproduce when we run the same commands on the command line but this PR should, in theory, reproduce the same hang on your repo as well. Enabling testing in true isolation is considered a good practice since this way you should be able to spot also missing dependencies since we are loading the package in a empty project and it should compile without errors. We were also wondering the reason you added that huge --timeout arg to utr if it's related to this issue but we were unable to find any job that exceeded reasonable timings. * add job for testing on Windows without GPU * hopefully this will reproduce the issue (cherry picked from commit 2583fbf5f484f734eb316c8758dbd38c96233ffd) * add job * fix * add dependencies * fix * fix * fix * fix bug * fix * fix issues * update dependency Co-authored-by: Mihai Popescu <57262907+mihai-unity@users.noreply.github.com>
2022-12-16 16:21:29 +08:00
upm-ci project test -u {{ editor.version }} --project-path {{ project.path }} --platform {{ param.platform }} --backend {{ param.backend }} --extra-utr-arg="--testfilter=!HttpSignaling"
{% endif %}
artifacts:
{{ packagename }}_{{ editor.version }}_{{ platform.name }}_test_results:
paths:
- "upm-ci~/test-results/**/*"
dependencies:
- .yamato/upm-ci-webapp.yml#pack_{{ platform.packed_webapp_platform }}
{% endfor %}
{% endfor %}
{% else %}
{% for param in platform.test_params %}
{% if param.platform == "standalone" %} # platform.name == "macos" or platform.name == "macos-m1" and param.platform == "standalone"
build_{{ param.platform }}_{{ param.backend }}_{{ platform.name }}_{{ editor.version }}:
name : Build {{ package_displayname }} with {{ param.platform }} {{ param.backend }} {{ editor.version }} on {{ platform.name }}
agent:
type: Unity::VM::osx
image: package-ci/mac:v1.20.0-1079282
flavor: m1.mac
commands:
- |
find upm-ci~/packages/ -name "*.tgz" | xargs -I file tar xvf file -C upm-ci~
- pip install unity-downloader-cli --index-url https://artifactory.prd.it.unity3d.com/artifactory/api/pypi/pypi/simple
- unity-downloader-cli -c Editor -c {{ param.additional_component_arg }} -u {{ editor.version }} --fast -w
- curl -s https://artifactory.prd.it.unity3d.com/artifactory/unity-tools/utr-standalone/utr --output utr
- chmod +x ./utr
ci: Add CI jobs which is package isolation test for detecting issues (#806) * Enable testing in true isolation We are experiencing a hang in our repo where we are building API Validation assemblies in which we take your latest promoted package `com.unity.renderstreaming@3.1.0-exp.4` (not happening with `3.1.0-exp.3`). The script imports the package with the Windows Unity Editor for the version you have specified in the `unity` field of your package (i.e. `2020.3`). We think it's because the use of `SynchronizationContext` are not properly cleaned up after and Unity still waits for them. Unfortunately this doesn't reproduce when we run the same commands on the command line but this PR should, in theory, reproduce the same hang on your repo as well. Enabling testing in true isolation is considered a good practice since this way you should be able to spot also missing dependencies since we are loading the package in a empty project and it should compile without errors. We were also wondering the reason you added that huge --timeout arg to utr if it's related to this issue but we were unable to find any job that exceeded reasonable timings. * add job for testing on Windows without GPU * hopefully this will reproduce the issue (cherry picked from commit 2583fbf5f484f734eb316c8758dbd38c96233ffd) * add job * fix * add dependencies * fix * fix * fix * fix bug * fix * fix issues * update dependency Co-authored-by: Mihai Popescu <57262907+mihai-unity@users.noreply.github.com>
2022-12-16 16:21:29 +08:00
- ./utr --suite=playmode --platform=StandaloneOSX --editor-location=.Editor --testproject=TestProjects/Empty --player-save-path=build/players --architecture=x64 --artifacts_path=build/logs --scripting-backend={{ param.backend }} --build-only --testfilter=!HttpSignaling
artifacts:
players:
paths:
- "build/players/**"
logs:
paths:
- "build/logs/**"
dependencies:
- .yamato/upm-ci-renderstreaming-packages.yml#pack
test_{{ packagename }}_{{ param.platform }}_{{ param.backend }}_{{ platform.name }}_{{ editor.version }}:
name : Test {{ package_displayname }} {{ param.platform }} {{ param.backend }} {{ editor.version }} on {{ platform.name }}
agent:
type: {{ platform.type }}
image: {{ platform.image }}
flavor: {{ platform.flavor }}
variables:
TEMPLATE_FILE: BuildScripts~/template/remote.sh.template
PACKAGE_DIR: UnityRenderStreaming
PLAYER_LOAD_PATH: build/players
TEST_RESULT_DIR: upm-ci~/test-results/
WEBAPP_DIR: UnityRenderStreaming/WebApp/bin~
WEBAPP_NAME: {{ platform.packed_webapp_name }}
TEST_TARGET: macos
TEST_PLATFORM: {{ param.platform }}
TEST_ARCHITECTURE: {{ platform.architecture }}
SCRIPTING_BACKEND: {{ param.backend }}
EDITOR_VERSION: {{ editor.version }}
commands:
- BuildScripts~/test_package_mac.sh
artifacts:
{{ packagename }}_{{ param.backend }}_{{ editor.version }}_{{ platform.name }}_test_results:
paths:
- "upm-ci~/test-results/**"
dependencies:
- .yamato/upm-ci-renderstreaming-packages.yml#build_{{ param.platform }}_{{ param.backend }}_{{ platform.name }}_{{ editor.version }}
- .yamato/upm-ci-webapp.yml#pack_{{ platform.packed_webapp_platform }}
{% else %} # platform.name == "macos" or platform.name == "macos-m1" and param.platform != "standalone"
test_{{ packagename }}_{{ param.platform }}_{{ param.backend }}_{{ platform.name }}_{{ editor.version }}:
name : Test {{ package_displayname }} {{ param.platform }} {{ param.backend }} {{ editor.version }} on {{ platform.name }}
agent:
type: {{ platform.type }}
image: {{ platform.image }}
flavor: {{ platform.flavor }}
variables:
TEMPLATE_FILE: BuildScripts~/template/remote.sh.template
PACKAGE_DIR: UnityRenderStreaming
TEST_PROJECT_DIR: UnityRenderStreaming/TestProjects/Empty
TEST_RESULT_DIR: upm-ci~/test-results/
WEBAPP_DIR: UnityRenderStreaming/WebApp/bin~
WEBAPP_NAME: {{ platform.packed_webapp_name }}
TEST_TARGET: macos
TEST_PLATFORM: {{ param.platform }}
TEST_ARCHITECTURE: {{ platform.architecture }}
SCRIPTING_BACKEND: {{ param.backend }}
EDITOR_VERSION: {{ editor.version }}
ci: Add CI jobs which is package isolation test for detecting issues (#806) * Enable testing in true isolation We are experiencing a hang in our repo where we are building API Validation assemblies in which we take your latest promoted package `com.unity.renderstreaming@3.1.0-exp.4` (not happening with `3.1.0-exp.3`). The script imports the package with the Windows Unity Editor for the version you have specified in the `unity` field of your package (i.e. `2020.3`). We think it's because the use of `SynchronizationContext` are not properly cleaned up after and Unity still waits for them. Unfortunately this doesn't reproduce when we run the same commands on the command line but this PR should, in theory, reproduce the same hang on your repo as well. Enabling testing in true isolation is considered a good practice since this way you should be able to spot also missing dependencies since we are loading the package in a empty project and it should compile without errors. We were also wondering the reason you added that huge --timeout arg to utr if it's related to this issue but we were unable to find any job that exceeded reasonable timings. * add job for testing on Windows without GPU * hopefully this will reproduce the issue (cherry picked from commit 2583fbf5f484f734eb316c8758dbd38c96233ffd) * add job * fix * add dependencies * fix * fix * fix * fix bug * fix * fix issues * update dependency Co-authored-by: Mihai Popescu <57262907+mihai-unity@users.noreply.github.com>
2022-12-16 16:21:29 +08:00
EXTRA_UTR_ARG: --testfilter=!HttpSignaling
commands:
- find upm-ci~/packages/ -name "*.tgz" | xargs -I file tar xvf file -C upm-ci~
- BuildScripts~/test_package_mac.sh
artifacts:
{{ packagename }}_{{ param.backend }}_{{ editor.version }}_{{ platform.name }}_test_results:
paths:
- "upm-ci~/test-results/**"
dependencies:
- .yamato/upm-ci-renderstreaming-packages.yml#pack
- .yamato/upm-ci-webapp.yml#pack_{{ platform.packed_webapp_platform }}
{% endif %}
{% for project in test_projects %}
test_{{ project.name }}_{{ param.platform }}_{{ param.backend }}_{{ platform.name }}_{{ editor.version }}:
name : Test {{ project.name }} {{ param.platform }} {{ param.backend }} {{ editor.version }} on {{ platform.name }}
agent:
type: {{ platform.type }}
image: {{ platform.image }}
flavor: {{ platform.flavor}}
variables:
TEMPLATE_FILE: BuildScripts~/template/remote.sh.template
PACKAGE_DIR: UnityRenderStreaming
TEST_PROJECT_DIR: UnityRenderStreaming/{{ project.path }}
TEST_RESULT_DIR: upm-ci~/test-results/
WEBAPP_DIR: UnityRenderStreaming/WebApp/bin~
WEBAPP_NAME: {{ platform.packed_webapp_name }}
TEST_TARGET: {{ platform.name }}
TEST_PLATFORM: {{ param.platform }}
SCRIPTING_BACKEND: {{ param.backend }}
EDITOR_VERSION: {{ editor.version }}
ci: Add CI jobs which is package isolation test for detecting issues (#806) * Enable testing in true isolation We are experiencing a hang in our repo where we are building API Validation assemblies in which we take your latest promoted package `com.unity.renderstreaming@3.1.0-exp.4` (not happening with `3.1.0-exp.3`). The script imports the package with the Windows Unity Editor for the version you have specified in the `unity` field of your package (i.e. `2020.3`). We think it's because the use of `SynchronizationContext` are not properly cleaned up after and Unity still waits for them. Unfortunately this doesn't reproduce when we run the same commands on the command line but this PR should, in theory, reproduce the same hang on your repo as well. Enabling testing in true isolation is considered a good practice since this way you should be able to spot also missing dependencies since we are loading the package in a empty project and it should compile without errors. We were also wondering the reason you added that huge --timeout arg to utr if it's related to this issue but we were unable to find any job that exceeded reasonable timings. * add job for testing on Windows without GPU * hopefully this will reproduce the issue (cherry picked from commit 2583fbf5f484f734eb316c8758dbd38c96233ffd) * add job * fix * add dependencies * fix * fix * fix * fix bug * fix * fix issues * update dependency Co-authored-by: Mihai Popescu <57262907+mihai-unity@users.noreply.github.com>
2022-12-16 16:21:29 +08:00
EXTRA_UTR_ARG: --testfilter=!HttpSignaling
commands:
- find ./{{ packagename }} -type l -exec bash -c 'sh BuildScripts~/convert_symlinks.sh "$0"' {} \;
- BuildScripts~/test_package_mac.sh
artifacts:
{{ packagename }}_{{ editor.version }}_{{ platform.name }}_test_results:
paths:
- "upm-ci~/test-results/**"
dependencies:
- .yamato/upm-ci-webapp.yml#pack_{{ platform.packed_webapp_platform }}
{% endfor %}
{% endfor %}
ci: Add CI jobs which is package isolation test for detecting issues (#806) * Enable testing in true isolation We are experiencing a hang in our repo where we are building API Validation assemblies in which we take your latest promoted package `com.unity.renderstreaming@3.1.0-exp.4` (not happening with `3.1.0-exp.3`). The script imports the package with the Windows Unity Editor for the version you have specified in the `unity` field of your package (i.e. `2020.3`). We think it's because the use of `SynchronizationContext` are not properly cleaned up after and Unity still waits for them. Unfortunately this doesn't reproduce when we run the same commands on the command line but this PR should, in theory, reproduce the same hang on your repo as well. Enabling testing in true isolation is considered a good practice since this way you should be able to spot also missing dependencies since we are loading the package in a empty project and it should compile without errors. We were also wondering the reason you added that huge --timeout arg to utr if it's related to this issue but we were unable to find any job that exceeded reasonable timings. * add job for testing on Windows without GPU * hopefully this will reproduce the issue (cherry picked from commit 2583fbf5f484f734eb316c8758dbd38c96233ffd) * add job * fix * add dependencies * fix * fix * fix * fix bug * fix * fix issues * update dependency Co-authored-by: Mihai Popescu <57262907+mihai-unity@users.noreply.github.com>
2022-12-16 16:21:29 +08:00
{% endif %}
{% endfor %}
trigger_test_{{ packagename }}_{{ editor.version }}:
name : Trigger test {{ package_displayname }} {{ editor.version }} all platforms
dependencies:
- .yamato/upm-ci-renderstreaming-packages.yml#test_{{ packagename }}_{{ editor.version }}
{% if editor.version == "2020.3" -%}
triggers:
expression: pull_request.target eq "main"
ci: Add CI jobs which is package isolation test for detecting issues (#806) * Enable testing in true isolation We are experiencing a hang in our repo where we are building API Validation assemblies in which we take your latest promoted package `com.unity.renderstreaming@3.1.0-exp.4` (not happening with `3.1.0-exp.3`). The script imports the package with the Windows Unity Editor for the version you have specified in the `unity` field of your package (i.e. `2020.3`). We think it's because the use of `SynchronizationContext` are not properly cleaned up after and Unity still waits for them. Unfortunately this doesn't reproduce when we run the same commands on the command line but this PR should, in theory, reproduce the same hang on your repo as well. Enabling testing in true isolation is considered a good practice since this way you should be able to spot also missing dependencies since we are loading the package in a empty project and it should compile without errors. We were also wondering the reason you added that huge --timeout arg to utr if it's related to this issue but we were unable to find any job that exceeded reasonable timings. * add job for testing on Windows without GPU * hopefully this will reproduce the issue (cherry picked from commit 2583fbf5f484f734eb316c8758dbd38c96233ffd) * add job * fix * add dependencies * fix * fix * fix * fix bug * fix * fix issues * update dependency Co-authored-by: Mihai Popescu <57262907+mihai-unity@users.noreply.github.com>
2022-12-16 16:21:29 +08:00
{% endif %}
test_{{ packagename }}_{{ editor.version }}:
name : Test {{ package_displayname }} {{ editor.version }} all platforms
dependencies:
{% for platform in platforms %}
{% for param in platform.test_params %}
# todo(kazuki) :
# editor/playmode test are not conducted on m1 mac
# XCode command line tools has not installed on m1 mac device (Standalone test don't need to install them)
{% if platform.name == "macos-m1" %}
{% if param.platform == "standalone" %}
- .yamato/upm-ci-renderstreaming-packages.yml#test_{{ packagename }}_{{ param.platform }}_{{ param.backend }}_{{ platform.name }}_{{ editor.version }}
{% endif %}
{% else %}
- .yamato/upm-ci-renderstreaming-packages.yml#test_{{ packagename }}_{{ param.platform }}_{{ param.backend }}_{{ platform.name }}_{{ editor.version }}
{% endif %}
{% endfor %}
{% endfor %}
- .yamato/upm-ci-renderstreaming-packages.yml#test_{{ packagename }}_{{ editor.version }}_ios
{% for target in test_targets_android %}
# todo: Exclude tests for Unity 2022.1 on Android platform because it is instable.
{% if editor.version != "2022.1" %}
- .yamato/upm-ci-renderstreaming-packages.yml#test_{{ packagename }}_{{ editor.version }}_android_{{ target.name }}
{% endif %}
{% endfor %}
test_renderpipeline_{{ packagename }}_{{ editor.version }}:
name : Test {{ package_displayname }} {{ editor.version }} all RenderPipeline
dependencies:
{% for platform in platforms %}
{% for param in platform.test_params %}
{% for project in test_projects %}
- .yamato/upm-ci-renderstreaming-packages.yml#test_{{ project.name }}_{{ param.platform }}_{{ param.backend }}_{{ platform.name }}_{{ editor.version }}
{% endfor %}
{% endfor %}
{% endfor %}
{% endfor %}
publish_dry_run_{{ packagename }}:
name: Publish Dry Run {{ package_displayname }}
agent:
type: Unity::VM
image: package-ci/win10:v1.21.0-1103459
flavor: b1.large
commands:
2020-05-08 15:58:57 +08:00
- npm install upm-ci-utils@{{ upm.package_version }} -g --registry {{ upm.registry_url }}
- upm-ci package publish --dry-run --package-path {{ packagename }}
triggers:
tags:
only:
- /^(r|R)(c|C)-\d+\.\d+\.\d+(-preview(\.\d+)?)?$/
artifacts:
{{ packagename }}_artifacts.zip:
paths:
- "upm-ci~/packages/*.tgz"
dependencies:
- .yamato/upm-ci-renderstreaming-packages.yml#pack
{% for editor in editors %}
{% if editor.version != "trunk" -%} # exclude trunk to test
ci: Add CI jobs which is package isolation test for detecting issues (#806) * Enable testing in true isolation We are experiencing a hang in our repo where we are building API Validation assemblies in which we take your latest promoted package `com.unity.renderstreaming@3.1.0-exp.4` (not happening with `3.1.0-exp.3`). The script imports the package with the Windows Unity Editor for the version you have specified in the `unity` field of your package (i.e. `2020.3`). We think it's because the use of `SynchronizationContext` are not properly cleaned up after and Unity still waits for them. Unfortunately this doesn't reproduce when we run the same commands on the command line but this PR should, in theory, reproduce the same hang on your repo as well. Enabling testing in true isolation is considered a good practice since this way you should be able to spot also missing dependencies since we are loading the package in a empty project and it should compile without errors. We were also wondering the reason you added that huge --timeout arg to utr if it's related to this issue but we were unable to find any job that exceeded reasonable timings. * add job for testing on Windows without GPU * hopefully this will reproduce the issue (cherry picked from commit 2583fbf5f484f734eb316c8758dbd38c96233ffd) * add job * fix * add dependencies * fix * fix * fix * fix bug * fix * fix issues * update dependency Co-authored-by: Mihai Popescu <57262907+mihai-unity@users.noreply.github.com>
2022-12-16 16:21:29 +08:00
- .yamato/upm-ci-renderstreaming-packages.yml#test_{{ packagename }}_editmode_mono_win-gpu_{{ editor.version }}
- .yamato/upm-ci-renderstreaming-packages.yml#test_{{ packagename }}_editmode_mono_macos_{{ editor.version }}
ci: Add CI jobs which is package isolation test for detecting issues (#806) * Enable testing in true isolation We are experiencing a hang in our repo where we are building API Validation assemblies in which we take your latest promoted package `com.unity.renderstreaming@3.1.0-exp.4` (not happening with `3.1.0-exp.3`). The script imports the package with the Windows Unity Editor for the version you have specified in the `unity` field of your package (i.e. `2020.3`). We think it's because the use of `SynchronizationContext` are not properly cleaned up after and Unity still waits for them. Unfortunately this doesn't reproduce when we run the same commands on the command line but this PR should, in theory, reproduce the same hang on your repo as well. Enabling testing in true isolation is considered a good practice since this way you should be able to spot also missing dependencies since we are loading the package in a empty project and it should compile without errors. We were also wondering the reason you added that huge --timeout arg to utr if it's related to this issue but we were unable to find any job that exceeded reasonable timings. * add job for testing on Windows without GPU * hopefully this will reproduce the issue (cherry picked from commit 2583fbf5f484f734eb316c8758dbd38c96233ffd) * add job * fix * add dependencies * fix * fix * fix * fix bug * fix * fix issues * update dependency Co-authored-by: Mihai Popescu <57262907+mihai-unity@users.noreply.github.com>
2022-12-16 16:21:29 +08:00
- .yamato/upm-ci-renderstreaming-packages.yml#test_{{ packagename }}_editmode_mono_linux-gpu_{{ editor.version }}
{% endif %}
{% endfor %}
publish_{{ packagename }}:
name: Publish {{ package_displayname }}
agent:
type: Unity::VM
image: package-ci/win10:v1.21.0-1103459
flavor: b1.large
commands:
2020-05-08 15:58:57 +08:00
- npm install upm-ci-utils@{{ upm.package_version }} -g --registry {{ upm.registry_url }}
- upm-ci package publish --package-path {{ packagename }}
triggers:
tags:
only:
- /^(r|R)(c|C)-\d+\.\d+\.\d+(-preview(\.\d+)?)?$/
artifacts:
{{ packagename }}_artifacts.zip:
paths:
- "upm-ci~/packages/*.tgz"
dependencies:
- .yamato/upm-ci-renderstreaming-packages.yml#pack
{% for editor in editors %}
{% if editor.version != "trunk" %} # exclude trunk to test
- .yamato/upm-ci-renderstreaming-packages.yml#trigger_test_{{ packagename }}_{{ editor.version }}
{% endif %}
{% endfor %}