diff --git a/internal/run-tests-with.yml b/internal/run-tests-with.yml index 22d0fb0..0cdf092 100644 --- a/internal/run-tests-with.yml +++ b/internal/run-tests-with.yml @@ -12,9 +12,9 @@ parameters: # Name of the virtual machine image to load. image_name: "" # Name of the Qt wrapper to pip install. Should be PySide or PySide2 - qt_wrapper: PySide2==5.15.2.1 + qt_wrapper: '' # Python version to use. - python_version: 3.7 + python_version: '' # List of Python packages that need to be pip installed for testing. extra_test_dependencies: [] # Pretty name for the job. @@ -40,13 +40,10 @@ parameters: # - bash: do_something # - bash: do_something_else post_tests_steps: [] - # When set to true, the agents for all platforms are set so tests can be executed - # on all platforms. - has_unit_tests: true jobs: - job: - displayName: ${{ parameters.job_name }} Python ${{ parameters.python_version }} + displayName: ${{ parameters.job_name }} pool: vmImage: ${{ parameters.image_name }} steps: diff --git a/internal/run-tests.yml b/internal/run-tests.yml index 2df173a..215e712 100644 --- a/internal/run-tests.yml +++ b/internal/run-tests.yml @@ -35,151 +35,44 @@ parameters: # If set to true, the build agent will run unit tests. has_unit_tests: true -# TODO: At some point, we should review how these environments are enumerated. -# Something like: -# -# parameters: -# variants: -# Linux: -# - Qt: PySide2 -# Python: 3.7 -# - Qt: PyQt5 -# Python: 3.7 -# macOS: -# - Qt: PySide2 -# Python: 3.7 -# - Qt: PyQt5 -# Python: 3.7 -# Windows: -# - Qt: PySide2 -# Python: 3.7 -# - Qt: PyQt5 -# Python: 3.7 -# -# This would give us a better view of what variants we are running. -# Having it as a parameter would allow us also us to pick -# which builds to use for certain repositories, is necessary. - -jobs: - - ${{ if eq( parameters.has_unit_tests, true ) }}: - - template: run-tests-with.yml - parameters: - image_name: 'windows-2022' - python_version: 3.9 - job_name: "Windows" - # pass through all parameters - extra_test_dependencies: ${{ parameters.extra_test_dependencies }} - tk_toolchain_ref: ${{ parameters.tk_toolchain_ref }} - additional_repositories: ${{ parameters.additional_repositories }} - tk_core_ref: ${{ parameters.tk_core_ref }} - post_tests_steps: ${{ parameters.post_tests_steps }} - has_unit_tests: ${{ parameters.has_unit_tests }} - - - template: run-tests-with.yml - parameters: - image_name: 'macOS-14' - python_version: 3.9 - job_name: "macOS" - # pass through all parameters. - extra_test_dependencies: ${{ parameters.extra_test_dependencies }} - tk_toolchain_ref: ${{ parameters.tk_toolchain_ref }} - additional_repositories: ${{ parameters.additional_repositories }} - tk_core_ref: ${{ parameters.tk_core_ref }} - post_tests_steps: ${{ parameters.post_tests_steps }} - has_unit_tests: ${{ parameters.has_unit_tests }} + vfx_reference_platform_versions: + - name: VFX CY2022 + python_version: '3.9' + qt_wrapper: PySide2==5.15.2.1 - - template: run-tests-with.yml - parameters: - image_name: 'ubuntu-22.04' - python_version: 3.9 - job_name: "Linux" - # pass through all parameters. - extra_test_dependencies: ${{ parameters.extra_test_dependencies }} - tk_toolchain_ref: ${{ parameters.tk_toolchain_ref }} - additional_repositories: ${{ parameters.additional_repositories }} - tk_core_ref: ${{ parameters.tk_core_ref }} - post_tests_steps: ${{ parameters.post_tests_steps }} - has_unit_tests: ${{ parameters.has_unit_tests }} + - name: VFX CY2023 + python_version: '3.10' + qt_wrapper: PySide2==5.15.2.1 - # ------------------------- - - template: run-tests-with.yml - parameters: - image_name: 'windows-2022' - python_version: 3.10 - job_name: "Windows" - # pass through all parameters - extra_test_dependencies: ${{ parameters.extra_test_dependencies }} - tk_toolchain_ref: ${{ parameters.tk_toolchain_ref }} - additional_repositories: ${{ parameters.additional_repositories }} - tk_core_ref: ${{ parameters.tk_core_ref }} - post_tests_steps: ${{ parameters.post_tests_steps }} - has_unit_tests: ${{ parameters.has_unit_tests }} + - name: VFX CY2024 + python_version: '3.11' + qt_wrapper: PySide6 - - template: run-tests-with.yml - parameters: - image_name: 'macOS-14' - python_version: 3.10 - job_name: "macOS" - # pass through all parameters. - extra_test_dependencies: ${{ parameters.extra_test_dependencies }} - tk_toolchain_ref: ${{ parameters.tk_toolchain_ref }} - additional_repositories: ${{ parameters.additional_repositories }} - tk_core_ref: ${{ parameters.tk_core_ref }} - post_tests_steps: ${{ parameters.post_tests_steps }} - has_unit_tests: ${{ parameters.has_unit_tests }} + os_versions: + - name: Windows + vm_image: windows-2022 - - template: run-tests-with.yml - parameters: - image_name: 'ubuntu-22.04' - python_version: 3.10 - job_name: "Linux" - # pass through all parameters. - extra_test_dependencies: ${{ parameters.extra_test_dependencies }} - tk_toolchain_ref: ${{ parameters.tk_toolchain_ref }} - additional_repositories: ${{ parameters.additional_repositories }} - tk_core_ref: ${{ parameters.tk_core_ref }} - post_tests_steps: ${{ parameters.post_tests_steps }} - has_unit_tests: ${{ parameters.has_unit_tests }} + - name: Linux + vm_image: ubuntu-22.04 - # ------------------------- - - template: run-tests-with.yml - parameters: - image_name: 'windows-2022' - python_version: 3.11 - qt_wrapper: PySide6 - job_name: "Windows" - # pass through all parameters - extra_test_dependencies: ${{ parameters.extra_test_dependencies }} - tk_toolchain_ref: ${{ parameters.tk_toolchain_ref }} - additional_repositories: ${{ parameters.additional_repositories }} - tk_core_ref: ${{ parameters.tk_core_ref }} - post_tests_steps: ${{ parameters.post_tests_steps }} - has_unit_tests: ${{ parameters.has_unit_tests }} + - name: macOS + vm_image: macOS-14 + # TODO: why don't we not use the "-latest" images here like we do everywhere else? (python-api, sg-jira-bridge, ...) - - template: run-tests-with.yml - parameters: - image_name: 'macOS-14' - python_version: 3.11 - qt_wrapper: PySide6 - job_name: "macOS" - # pass through all parameters. - extra_test_dependencies: ${{ parameters.extra_test_dependencies }} - tk_toolchain_ref: ${{ parameters.tk_toolchain_ref }} - additional_repositories: ${{ parameters.additional_repositories }} - tk_core_ref: ${{ parameters.tk_core_ref }} - post_tests_steps: ${{ parameters.post_tests_steps }} - has_unit_tests: ${{ parameters.has_unit_tests }} +jobs: + - ${{ if eq( parameters.has_unit_tests, true ) }}: + - ${{ each os_version in parameters.os_versions }}: + - ${{ each platform in parameters.vfx_reference_platform_versions }}: + - template: run-tests-with.yml + parameters: + job_name: ${{ os_version.name }} Python ${{ platform.python_version }} + image_name: ${{ os_version.vm_image }} + python_version: ${{ platform.python_version }} + qt_wrapper: ${{ platform.qt_wrapper }} - - template: run-tests-with.yml - parameters: - image_name: 'ubuntu-22.04' - qt_wrapper: PySide6 - python_version: 3.11 - job_name: "Linux" - # pass through all parameters. - extra_test_dependencies: ${{ parameters.extra_test_dependencies }} - tk_toolchain_ref: ${{ parameters.tk_toolchain_ref }} - additional_repositories: ${{ parameters.additional_repositories }} - tk_core_ref: ${{ parameters.tk_core_ref }} - post_tests_steps: ${{ parameters.post_tests_steps }} - has_unit_tests: ${{ parameters.has_unit_tests }} + # pass through all parameters + extra_test_dependencies: ${{ parameters.extra_test_dependencies }} + tk_toolchain_ref: ${{ parameters.tk_toolchain_ref }} + additional_repositories: ${{ parameters.additional_repositories }} + tk_core_ref: ${{ parameters.tk_core_ref }} + post_tests_steps: ${{ parameters.post_tests_steps }}