1- {% metadata_file .yamato/config.metadata %}
2- ---
3-
4- {% for editor in editors %} # all supported editor versions
5- {% for platform in platforms_win %} # Windows Editor, Standalone (Mono), Standalone (IL2CPP)
6- {% for category in test_category %} # functional, performance
7- {{ platform.name }}_{{ editor.version }}_{{ category.name }}:
8- name : Build & Run {{ editor.version }} - {{ platform.name }}, {{ category.name }} tests
9- agent :
10- type : {{ platform.type }}
11- image : {{ platform.image }}
12- flavor : {{ platform.flavor }}
13- variables :
14- EDITOR_VERSION : {{ editor.version }}
15- commands :
16- - {{ upm_ci_install }}
17- # Get version 2.3.0-preview of doctools package (it currently fails for 3.0.0-preview).
18- # Automatically makes the documentation tests in APIVerification go live.
19- - ' %GSUDO% choco install netfx-4.7.1-devpack -y --ignore-detected-reboot --ignore-package-codes'
20- -
git clone --branch "2.3.0-preview" [email protected] :unity/com.unity.package-manager-doctools.git Packages/com.unity.package-manager-doctools 21- # We keep the samples in Assets/ as they otherwise won't get imported and you can't
22- # really work with them. Move them into the package for when we run upm-ci here.
23- - move /Y .\Assets\Samples .\Packages\com.unity.inputsystem
24- - move /Y .\Assets\Samples.meta .\Packages\com.unity.inputsystem
25- - npm install upm-ci-utils@stable -g --registry https://artifactory-upload.prd.it.unity3d.com/artifactory/api/npm/upm-npm
26- - upm-ci package pack --package-path ./Packages/com.unity.inputsystem/
27- # Run upm-ci verification tests as well as tests contained in the package.
28- - upm-ci package test --package-path ./Packages/com.unity.inputsystem/ -u %EDITOR_VERSION%
29- {% if platform.name == "win" and category.name == "functional" %} --enable-code-coverage --code-coverage-options "generateAdditionalMetrics;generateHtmlReport;assemblyFilters:+Unity.InputSystem;pathReplacePatterns:@*,,Library/PackageCache,Packages" --extra-utr-arg="--coverage-results-path={{ yamato_source_dir_win }}/upm-ci~/test-results/CodeCoverage/Package --coverage-upload-options=\"reportsDir:upm-ci~/test-results/CodeCoverage/Package;name:{{platform.name}}_{{editor.version}}_pkg;flags:{{platform.name}}_{{editor.version}}_pkg\"" {% endif %}
30- {% if platform.installscript %}
31- - {{ platform.installscript }} %EDITOR_VERSION%
32- {% endif %}
33- # ADBv2 on 2019.4 causes the test runner to not start on initial import when the
34- # samples are in the package. Move the samples back into the project.
35- - move /Y .\Packages\com.unity.inputsystem\Samples .\Assets
36- - move /Y .\Packages\com.unity.inputsystem\Samples.meta .\Assets
37- # Now run our full test suite that sits in Assets/Tests by running UTR on our project.
38- - UnifiedTestRunner --testproject . --timeout=1200 --editor-location=.Editor --artifacts_path=upm-ci~/test-results/isolation-com.unity.inputsystem.tests --clean-library --reruncount=1 --clean-library-on-rerun --suite=playmode {% if platform.name == "win" %} --suite=editor {% endif %} {% if category.name == "performance" %} --category=Performance {% else %} --category=!Performance {% endif %} --api-profile=NET_4_6 {% if platform.runtime %} --platform {{ platform.runtime }} {% endif %} {% if platform.scripting-backend %} --scripting-backend {{ platform.scripting-backend }} {% endif %} {% if category.name == "performance" %} --report-performance-data --performance-project-id=InputSystem {% endif %} {% if platform.name == "win" and category.name == "functional" %}--enable-code-coverage --coverage-options="generateAdditionalMetrics;generateHtmlReport;assemblyFilters:+Unity.InputSystem" --coverage-results-path={{ yamato_source_dir_win }}/upm-ci~/test-results/CodeCoverage/Project --coverage-upload-options="reportsDir:upm-ci~/test-results/CodeCoverage/Project;name:{{platform.name}}_{{editor.version}}_project;flags:{{platform.name}}_{{editor.version}}_project" {% endif %}
39- {% if platform.name == "win" and category.name == "functional" %}
40- # Delete the Package and Project reports & raw coverage data, to keep Artifacts.zip smaller
41- - rmdir /s/q "{{ yamato_source_dir_win }}/upm-ci~/test-results/CodeCoverage/Package"
42- - rmdir /s/q "{{ yamato_source_dir_win }}/upm-ci~/test-results/CodeCoverage/Project"
43- {% endif %}
44- after :
45- - {{ instabilities_install_win }}
46- - {{ instabilities_run_win }}
47- artifacts :
48- UTR_Output.zip :
49- paths :
50- - " upm-ci~/test-results/**/*"
51- {% if platform.name == "win" and category.name == "functional" %}
52- triggers :
53- expression : push.branch eq "develop"
54- cancel_old_ci : true
55- {% endif %}
56- {% endfor %} # test_category
57- {% endfor %} # platforms_win
58-
59- {% for platform in platforms_nix %} # Mac Editor, Standalone (Mono), Standalone (IL2CPP), Linux Editor, Standalone (Mono), Standalone (IL2CPP)
60- {% for category in test_category %} # functional, performance
61- {{ platform.name }}_{{ editor.version }}_{{ category.name }}:
62- name : Build & Run {{ editor.version }} - {{ platform.name }}, {{ category.name }} tests
63- agent :
64- type : {{ platform.type }}
65- image : {{ platform.image }}
66- flavor : {{ platform.flavor }}
67- variables :
68- EDITOR_VERSION : {{ editor.version }}
69- commands :
70- - {{ upm_ci_install }}
71- # Get version 2.3.0-preview of doctools package (it currently fails for 3.0.0-preview).
72- # Automatically makes the documentation tests in APIVerification go live.
73- -
git clone --branch "2.3.0-preview" [email protected] :unity/com.unity.package-manager-doctools.git Packages/com.unity.package-manager-doctools 74- # We keep the samples in Assets/ as they otherwise won't get imported and you can't
75- # really work with them. Move them into the package for when we run upm-ci here.
76- - mv ./Assets/Samples ./Packages/com.unity.inputsystem
77- - mv ./Assets/Samples.meta ./Packages/com.unity.inputsystem
78- - npm install upm-ci-utils@stable -g --registry https://artifactory-upload.prd.it.unity3d.com/artifactory/api/npm/upm-npm
79- - upm-ci package pack --package-path ./Packages/com.unity.inputsystem/
80- # Run upm-ci verification tests as well as tests contained in the package.
81- - upm-ci package test --package-path ./Packages/com.unity.inputsystem/ -u $EDITOR_VERSION {% if category.name == "functional" and platform.name == "mac" or platform.name == "linux" %} --enable-code-coverage --code-coverage-options "generateAdditionalMetrics;generateHtmlReport;assemblyFilters:+Unity.InputSystem;pathReplacePatterns:@*,,Library/PackageCache,Packages" --extra-utr-arg="--coverage-results-path={{ yamato_source_dir_nix }}/upm-ci~/test-results/CodeCoverage/Package --coverage-upload-options=\"reportsDir:upm-ci~/test-results/CodeCoverage/Package;name:{{platform.name}}_{{editor.version}}_pkg;flags:{{platform.name}}_{{editor.version}}_pkg\"" {% endif %}
82- {% if platform.installscript %}
83- - {{ platform.installscript }} $EDITOR_VERSION
84- {% endif %}
85- # ADBv2 on 2019.4 causes the test runner to not start on initial import when the
86- # samples are in the package. Move the samples back into the project.
87- - mv ./Packages/com.unity.inputsystem/Samples ./Assets
88- - mv ./Packages/com.unity.inputsystem/Samples.meta ./Assets
89- # Now run our full test suite that sits in Assets/Tests by running UTR on our project.
90- - UnifiedTestRunner --testproject . --timeout=1200 --editor-location=.Editor --artifacts_path=upm-ci~/test-results/isolation-com.unity.inputsystem.tests --clean-library --reruncount=1 --clean-library-on-rerun --suite=playmode {% if platform.name == "mac" or platform.name == "linux"%} --suite=editor {% endif %} {% if category.name == "performance" %} --category=Performance {% else %} --category=!Performance {% endif %} --api-profile=NET_4_6 {% if platform.runtime %} --platform {{ platform.runtime }} {% endif %} {% if platform.scripting-backend %} --scripting-backend {{ platform.scripting-backend }} {% endif %} {% if category.name == "performance" %} --report-performance-data --performance-project-id=InputSystem {% endif %} {% if category.name == "functional" and platform.name == "mac" or platform.name == "linux" %} --enable-code-coverage --coverage-options="generateAdditionalMetrics;generateHtmlReport;assemblyFilters:+Unity.InputSystem" --coverage-results-path={{ yamato_source_dir_nix }}/upm-ci~/test-results/CodeCoverage/Project --coverage-upload-options="reportsDir:upm-ci~/test-results/CodeCoverage/Project;name:{{platform.name}}_{{editor.version}}_project;flags:{{platform.name}}_{{editor.version}}_project" {% endif %}
91- {% if category.name == "functional" and platform.name == "mac" or platform.name == "linux"%}
92- # Delete the Package and Project reports & raw coverage data, to keep Artifacts.zip smaller
93- - rm -rf {{ yamato_source_dir_nix }}/upm-ci~/test-results/CodeCoverage/Package
94- - rm -rf {{ yamato_source_dir_nix }}/upm-ci~/test-results/CodeCoverage/Project
95- {% endif %}
96- after :
97- - {{ instabilities_install_nix }}
98- - {{ platform.instabilities_run }}
99- artifacts :
100- UTR_Output.zip :
101- paths :
102- - " upm-ci~/test-results/**/*"
103- {% if category.name == "functional" and platform.name == "mac" or platform.name == "linux"%}
104- triggers :
105- expression : push.branch eq "develop"
106- cancel_old_ci : true
107- {% endif %}
108- {% endfor %} # test_category
109- {% endfor %} # platforms_nix
110- {% endfor %} # editors
111-
112- {% for editor in editors %} # all supported editor versions
113- {% for category in test_category %} # fucntional, performance
114- build_ios_{{ editor.version }}_{{ category.name }} :
115- name : Build - {{ editor.version }} - iOS, {{ category.name }} tests
116- agent :
117- type : Unity::VM::osx
118- image : {{ ios_and_tvos_macos_bokken_image }} # image version pinned in config, because new Xcode keeps breaking us
119- flavor : b1.large
120- variables :
121- EDITOR_VERSION : {{ editor.version }}
122- UTR_VERSION : 1.35.1
123- {% if editor.run_ios_15 %}
124- UNITY_HANDLEUIINTERRUPTIONS : 1
125- {% endif %}
126- commands :
127- - unity-downloader-cli -c Editor -c iOS -u $EDITOR_VERSION --fast --wait
128- - UnifiedTestRunner --suite=playmode --clean-library --reruncount=1 --clean-library-on-rerun {% if category.name == "performance" %} --category=Performance {% else %} --category=!Performance {% endif %} --platform=iOS --editor-location=.Editor --testproject=. --player-save-path=build/players --artifacts_path=build/logs --build-only {% if category.name == "performance" %} --report-performance-data --performance-project-id=InputSystem {% endif %}
129- after :
130- - {{ instabilities_install_nix }}
131- - {{ instabilities_run_mac }}
132- artifacts :
133- players :
134- paths :
135- - " build/players/**"
136- logs :
137- paths :
138- - " build/logs/**"
139-
140- run_ios_{{ editor.version }}_{{ category.name }} :
141- name : Run - {{ editor.version }} - iOS, {{ category.name }} tests
142- agent :
143- type : Unity::mobile::iPhone
144- image : {{ ios_and_tvos_macos_bokken_image }}
145- {% if editor.run_ios_15 %}
146- model : SE-Gen3
147- {% else %}
148- model : SE
149- {% endif %}
150- flavor : b1.medium
151- variables :
152- EDITOR_VERSION : {{ editor.version }}
153- # Skip repository cloning
154- skip_checkout : true
155- # Set a dependency on the build job
156- dependencies :
157- - .yamato/upm-ci.yml#build_ios_{{ editor.version }}_{{ category.name }}
158- commands :
159- - UnifiedTestRunner --suite=playmode --clean-library --reruncount=1 --clean-library-on-rerun {% if category.name == "performance" %} --category=Performance {% else %} --category=!Performance {% endif %} --platform=iOS --player-load-path=build/players --artifacts_path=build/test-results {% if category.name == "performance" %} --report-performance-data --performance-project-id=InputSystem {% endif %}
160- after :
161- - {{ instabilities_install_nix }}
162- - {{ instabilities_run_mac }}
163- artifacts :
164- logs :
165- paths :
166- - " build/test-results/**"
167-
168- build_tvos_{{ editor.version }}_{{ category.name }} :
169- name : Build - {{ editor.version }} - tvOS, {{ category.name }} tests
170- agent :
171- type : Unity::VM::osx
172- image : {{ ios_and_tvos_macos_bokken_image }}
173- flavor : b1.large
174- variables :
175- EDITOR_VERSION : {{ editor.version }}
176- UTR_VERSION : 1.35.1
177- commands :
178- - unity-downloader-cli -c Editor -c AppleTV -u $EDITOR_VERSION --fast --wait
179- - UnifiedTestRunner --suite=playmode --clean-library --reruncount=1 --clean-library-on-rerun {% if category.name == "performance" %} --category=Performance {% else %} --category=!Performance {% endif %} --platform=tvOS --editor-location=.Editor --testproject=. --player-save-path=build/players --artifacts_path=build/logs --build-only {% if category.name == "performance" %} --report-performance-data --performance-project-id=InputSystem {% endif %}
180- after :
181- - {{ instabilities_install_nix }}
182- - {{ instabilities_run_mac }}
183- artifacts :
184- players :
185- paths :
186- - " build/players/**"
187- logs :
188- paths :
189- - " build/logs/**"
190-
191- run_tvos_{{ editor.version }}_{{ category.name }} :
192- name : Run - {{ editor.version }} - tvOS, {{ category.name }} tests
193- agent :
194- type : Unity::mobile::appletv
195- image : {{ ios_and_tvos_macos_bokken_image }}
196- flavor : b1.medium
197- variables :
198- EDITOR_VERSION : {{ editor.version }}
199- # Skip repository cloning
200- skip_checkout : true
201- # Set a dependency on the build job
202- dependencies :
203- - .yamato/upm-ci.yml#build_tvos_{{ editor.version }}_{{ category.name }}
204- commands :
205- - UnifiedTestRunner --suite=playmode --clean-library --reruncount=1 --clean-library-on-rerun {% if category.name == "performance" %} --category=Performance {% else %} --category=!Performance {% endif %} --platform=tvOS --player-load-path=build/players --artifacts_path=build/test-results {% if category.name == "performance" %} --report-performance-data --performance-project-id=InputSystem {% endif %}
206- after :
207- - {{ instabilities_install_nix }}
208- - {{ instabilities_run_mac }}
209- artifacts :
210- logs :
211- paths :
212- - " build/test-results/**"
213- {% endfor %} # test_category
214-
215- {% for backend in scripting_backends %} # Mono, IL2CPP
216- {% for category in test_category %} # functional, performance
217- build_android_{{ editor.version }}_{{ backend.name }}_{{ category.name }} :
218- name : Build - {{ editor.version }} - Android {{ backend.name }}, {{ category.name }} tests
219- agent :
220- type : Unity::VM
221- image : package-ci/win10:default
222- flavor : b1.xlarge
223- variables :
224- EDITOR_VERSION : {{ editor.version }}
225- commands :
226- - unity-downloader-cli -c Editor -c Android -u %EDITOR_VERSION% --fast --wait
227- - UnifiedTestRunner --suite=playmode --clean-library --reruncount=1 --clean-library-on-rerun {% if category.name == "performance" %} --category=Performance {% else %} --category=!Performance {% endif %} --platform=Android --editor-location=.Editor --testproject=. --player-save-path=build/players --artifacts_path=build/logs --scripting-backend={{ backend.name }} --build-only --repository {% if category.name == "performance" %} --performance-project-id=InputSystem {% endif %}
228- after :
229- - {{ instabilities_install_win }}
230- - {{ instabilities_run_win }}
231- artifacts :
232- players :
233- paths :
234- - " build/players/**"
235- logs :
236- paths :
237- - " build/logs/**"
238-
239- run_android_{{ editor.version }}_{{ backend.name }}_{{ category.name }} :
240- name : Run - {{ editor.version }} - Android {{ backend.name }}, {{ category.name }} tests
241- agent :
242- type : Unity::mobile::shield
243- image : package-ci/win10:default
244- flavor : b1.medium
245- variables :
246- EDITOR_VERSION : {{ editor.version }}
247- # Skip repository cloning
248- skip_checkout : true
249- # Set a dependency on the build job
250- dependencies :
251- - .yamato/upm-ci.yml#build_android_{{ editor.version }}_{{ backend.name }}_{{ category.name }}
252- commands :
253- - |
254- # Set the IP of the device. In case device gets lost, UTR will try to recconect to ANDROID_DEVICE_CONNECTION
255- set ANDROID_DEVICE_CONNECTION=%BOKKEN_DEVICE_IP%
256- # Establish an ADB connection with the device
257- start %ANDROID_SDK_ROOT%\platform-tools\adb.exe connect %BOKKEN_DEVICE_IP%
258- # List the connected devices
259- start %ANDROID_SDK_ROOT%\platform-tools\adb.exe devices
260- UnifiedTestRunner --suite=playmode --clean-library --reruncount=1 --clean-library-on-rerun {% if category.name == "performance" %} --category=Performance {% else %} --category=!Performance {% endif %} --platform=android --player-load-path=build/players --artifacts_path=build/test-results {% if category.name == "performance" %} --report-performance-data --performance-project-id=InputSystem {% endif %}
261- after :
262- - start %ANDROID_SDK_ROOT%\platform-tools\adb.exe connect %BOKKEN_DEVICE_IP%
263- - if not exist build\test-results mkdir build\test-results
264- - powershell %ANDROID_SDK_ROOT%\platform-tools\adb.exe logcat -d > build/test-results/device_log.txt
265- - {{ instabilities_install_win }}
266- - {{ instabilities_run_win }}
267- # Set uploadable artifact paths
268- artifacts :
269- logs :
270- paths :
271- - " build/test-results/**"
272- {% endfor %} # test_category
273- {% endfor %} # scripting_backends
274- {% endfor %} # editors
275-
276- all_tests :
277- name : All Functional Tests
278- dependencies :
279- {% for editor in editors %}
280- {% for platform in platforms_win %}
281- - .yamato/upm-ci.yml#{{ platform.name }}_{{ editor.version }}_functional
282- {% endfor %}
283- {% for platform in platforms_nix %}
284- - .yamato/upm-ci.yml#{{ platform.name }}_{{ editor.version }}_functional
285- {% endfor %}
286- {% for backend in scripting_backends %}
287- - .yamato/upm-ci.yml#run_android_{{ editor.version }}_{{ backend.name }}_functional
288- {% endfor %}
289- - .yamato/upm-ci.yml#run_ios_{{ editor.version }}_functional
290- {% if editor.run_tvos == "false" %}
291- - .yamato/upm-ci.yml#build_tvos_{{ editor.version }}_functional
292- {% else %}
293- - .yamato/upm-ci.yml#run_tvos_{{ editor.version }}_functional
294- {% endif %}
295- {% endfor %}
296- - .yamato/wrench/promotion-jobs.yml#publish_dry_run_inputsystem
297- triggers :
298- cancel_old_ci : true
299- expression : pull_request.(target eq "develop" AND NOT changes.all match "**/*.md")
300-
3011tests_for_doc_changes :
3022 name : Tests for Documentation Changes
3033 dependencies :
@@ -307,31 +7,3 @@ tests_for_doc_changes:
3077 triggers :
3088 cancel_old_ci : true
3099 expression : pull_request.(target eq "develop" AND changes.all match "**/*.md")
310-
311- performance_tests_only :
312- name : All Performance Tests
313- dependencies :
314- {% for editor in editors %}
315- {% for platform in platforms_win %}
316- - .yamato/upm-ci.yml#{{ platform.name }}_{{ editor.version }}_performance
317- {% endfor %}
318- {% for platform in platforms_nix %}
319- - .yamato/upm-ci.yml#{{ platform.name }}_{{ editor.version }}_performance
320- {% endfor %}
321- {% for backend in scripting_backends %}
322- - .yamato/upm-ci.yml#run_android_{{ editor.version }}_{{ backend.name }}_performance
323- {% endfor %}
324- - .yamato/upm-ci.yml#run_ios_{{ editor.version }}_performance
325- {% unless editor.run_tvos == "false" %}
326- - .yamato/upm-ci.yml#run_tvos_{{ editor.version }}_performance
327- {% endunless %}
328- {% endfor %} # editors
329- triggers :
330- recurring :
331- - branch : develop
332- frequency : daily
333- rerun : always
334- - branch : release/1.X
335- frequency : weekly
336- rerun : always
337-
0 commit comments