test_editors: - version: 2018.4 # 2018.4 doesn't support code-coverage coverageOptions: minCoveragePct: 0 - version: 2019.3 coverageOptions: --enable-code-coverage --code-coverage-options 'generateHtmlReport;assemblyFilters:+Unity.ML-Agents' minCoveragePct: 72 - version: 2020.1 coverageOptions: --enable-code-coverage --code-coverage-options 'generateHtmlReport;assemblyFilters:+Unity.ML-Agents' minCoveragePct: 72 - version: 2020.2 coverageOptions: --enable-code-coverage --code-coverage-options 'generateHtmlReport;assemblyFilters:+Unity.ML-Agents' minCoveragePct: 72 trunk_editor: - version: trunk coverageOptions: --enable-code-coverage --code-coverage-options 'generateHtmlReport;assemblyFilters:+Unity.ML-Agents' minCoveragePct: 72 test_platforms: - name: win type: Unity::VM image: package-ci/win10:stable flavor: b1.large - name: mac type: Unity::VM::osx image: package-ci/mac:stable flavor: b1.small - name: linux type: Unity::VM image: package-ci/ubuntu:stable flavor: b1.medium packages: - name: com.unity.ml-agents - name: com.unity.ml-agents.extensions --- all_package_tests: name: Run All Combinations of Editors/Platforms Tests dependencies: {% for editor in test_editors %} {% for platform in test_platforms %} - .yamato/com.unity.ml-agents-test.yml#test_{{ platform.name }}_{{ editor.version }} {% endfor %} {% endfor %} {% for editor in trunk_editor %} {% for platform in test_platforms %} - .yamato/com.unity.ml-agents-test.yml#test_{{ platform.name }}_{{ editor.version }} {% endfor %} {% endfor %} triggers: cancel_old_ci: true recurring: - branch: master frequency: daily {% for package in packages %} {% for editor in test_editors %} {% for platform in test_platforms %} test_{{ package.name }}_{{ platform.name }}_{{ editor.version }}: name : {{ package.name }} test {{ editor.version }} on {{ platform.name }} agent: type: {{ platform.type }} image: {{ platform.image }} flavor: {{ platform.flavor}} commands: - npm install upm-ci-utils@stable -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm - upm-ci package test -u {{ editor.version }} --package-path {{ package.name }} {{ editor.coverageOptions }} {% if package.name == "com.unity.ml-agents" %} # TODO get coverage tests running for extensions too - python ml-agents/tests/yamato/check_coverage_percent.py upm-ci~/test-results/ {{ editor.minCoveragePct }} {% endif %} artifacts: logs: paths: - "upm-ci~/test-results/**/*" dependencies: - .yamato/com.unity.ml-agents-pack.yml#pack_{{ package.name }} triggers: cancel_old_ci: true {% if platform.name == "mac" %} expression: | (pull_request.target eq "master" OR pull_request.target match "release.+") AND NOT pull_request.draft AND (pull_request.changes.any match "com.unity.ml-agents/**" OR {% if package.name == "com.unity.ml-agents" %} pull_request.changes.any match "com.unity.ml-agents.extensions/**" OR {% endif %} pull_request.changes.any match ".yamato/com.unity.ml-agents-test.yml") {% endif %} {% endfor %} {% endfor %} {% endfor %} {% for package in packages %} {% for editor in trunk_editor %} {% for platform in test_platforms %} test_{{ package.name }}_{{ platform.name }}_trunk: name : {{ package.name }} test {{ editor.version }} on {{ platform.name }} agent: type: {{ platform.type }} image: {{ platform.image }} flavor: {{ platform.flavor}} commands: - python -m pip install unity-downloader-cli --extra-index-url https://artifactory.eu-cph-1.unityops.net/api/pypi/common-python/simple - unity-downloader-cli -u trunk -c editor --wait --fast - npm install upm-ci-utils@stable -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm - upm-ci package test -u {{ editor.version }} --package-path {{ package.name }} {{ editor.coverageOptions }} {% if package.name == "com.unity.ml-agents" %} # TODO get coverage tests running for extensions too - python ml-agents/tests/yamato/check_coverage_percent.py upm-ci~/test-results/ {{ editor.minCoveragePct }} {% endif %} artifacts: logs: paths: - "upm-ci~/test-results/**/*" dependencies: - .yamato/com.unity.ml-agents-pack.yml#pack_{{ package.name }} triggers: cancel_old_ci: true {% endfor %} {% endfor %} {% endfor %}